System Architecture
Interkit consists of three elements. In the standard installation via Docker, each runs in it’s own container.
Server
A meteorjs backe-end server that handles
- the database (see collections)
media files
(uploaded files)
Every project, as well as the admin interface, needs to connect to an interkit server
Bundler
A node back-end server that handles project files and repositories.
- serves projects via HTTP
- runs vite servers for project development
- runs
project servers
(“story”) - manages project repositories with
git
. - has several RPC and REST interfaces
- connects to server via ddp
The bundler is required for the admin interface to work. Apart from that, projects are able to run standalone.
Admin
A svelte front-end to edit projects (Redaktionssystem / admin interface). It connects to the server and sends requests to the bundler in order to manage project files.
Graph
This graph illustrates the connections between the subsystems and containers.
graph TD
subgraph c0 [Server]
subgraph c1 [Server Container]
server[[Data Server]]
end
subgraph c2 [Bundler Container]
bundler[[Bundle Server]]
starter(Starter App)
projectserver[Project Server]
end
subgraph c3 [Admin Container]
admin[[Admin Server]]
end
db[(Database)]
media[(Media Files)]
repositories[(App Repositories)]
end
subgraph Browser
app(( Web App ))
redaktion((Redaktionssystem))
end
server === |ddp| bundler
server === |ddp| app
server === |ddp| redaktion
server === |ddp| projectserver
server -.- |tcp| db
server -.- |mount| media
bundler --- |http| app
bundler -.- |directory| starter
bundler -.- |mount| repositories
bundler --- |http| redaktion
bundler -.-> |process| projectserver
admin ----- |http| redaktion
class c1,c2,c3 container;
classDef container fill:#fff,stroke:#444,stroke-width:3px
classDef server fill:#eee