Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
663 changes: 663 additions & 0 deletions FEDERATION_SETUP_GUIDE.md

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions opentakserver/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,9 @@ def create_app(cli=True):
from opentakserver.blueprints.scheduled_jobs import scheduler_blueprint
app.register_blueprint(scheduler_blueprint)

from opentakserver.blueprints.federation import federation_blueprint
app.register_blueprint(federation_blueprint)

app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_host=1)

else:
Expand Down Expand Up @@ -291,6 +294,9 @@ def create_app(cli=True):
from opentakserver.blueprints.scheduled_jobs import scheduler_blueprint
app.register_blueprint(scheduler_blueprint)

from opentakserver.blueprints.federation import federation_blueprint
app.register_blueprint(federation_blueprint)

return app


Expand Down Expand Up @@ -386,6 +392,22 @@ def dict_factory(cursor, row):

db.session.commit()

# Initialize Federation Service
if app.config.get("OTS_ENABLE_FEDERATION"):
try:
logger.info("Starting Federation Service")
from opentakserver.blueprints.federation.federation_service import FederationService
app.federation_service = FederationService(app.config, app)
app.federation_service.start()
logger.info("Federation Service started successfully")
except BaseException as e:
logger.error(f"Failed to start Federation Service: {e}")
logger.debug(traceback.format_exc())
app.federation_service = None
else:
logger.info("Federation Service disabled")
app.federation_service = None

app.start_time = datetime.now(timezone.utc)

try:
Expand All @@ -395,6 +417,9 @@ def dict_factory(cursor, row):
logger.warning("Caught CTRL+C, exiting...")
if app.config.get("OTS_ENABLE_PLUGINS"):
app.plugin_manager.stop_plugins()
if app.federation_service:
logger.info("Stopping Federation Service...")
app.federation_service.stop()


def start():
Expand Down
5 changes: 5 additions & 0 deletions opentakserver/blueprints/federation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from flask import Blueprint

federation_blueprint = Blueprint('federation', __name__)

from . import federation_api
Loading