With latest (master) version of dash, you can build a multi-app project!
Structure
dash-project/
app1/
app.py
datamodel.py
app2/
app.py
datamodel.py
mycomponents/
...
server.py
run.py
app1/app.py:
import dash
import app1.datamodel
..
from server import server
app = dash.Dash(name='app1', sharing=True,
server=server, url_base_pathname='/app1')
from flask import Flask
server = Flask(__name__)
from server import server as application
import app1.app
import app2.app
Serve using uwsgi:
uwsgi --http 0.0.0.0:5000 --processes 4 --wsgi-file run.py
(updated to work with uwsgi, so you get proper multi-process management)