Overview of WROLPi Systems
Services
Web
The nginx service which facilitates communication between the other services (especially in the docker containers in
the development environment.)
API
| Software Project |
Purpose |
| Python |
The language of the WROLPi API and scripts. |
| Sanic |
An async web app framework, used for the API. |
| SQLAlchemy |
The database ORM. |
| yt-dlp |
Used to download videos. |
| SingleFile |
Used to create Archives. |
| Readability |
Used to extract the article from an Archive. |
| Chromium |
Used to create Archives. |
| FFMPEG |
Video processing software which is used by the API to manipulate videos |
| libzim |
Used to search the ZIM files |
DB
| Software Project |
Purpose |
| Postgresql |
Facilitates searching of files, scheduling downloads, and much more. |
App
| Software Project |
Purpose |
| ReactJS |
The framework which controls the App. Built on-top of Javascript. |
| SemanticUI |
The framework and style of the App's buttons, tables, etc. |
| NodeJS |
The run-time environment which runs the ReactJS app. |
Map
| Software Project |
Purpose |
| OpenStreetMap |
Provides the Map data. |
| osmium |
Used to merge map PBF files. |
| osm2pgsql |
Used to import PBF files into Postgresql. |
Zim
| Software Project |
Purpose |
| Kiwix |
Provides the ZIM files. |
| Kiwix Server |
Hosts the ZIM files interface. |
Help
| Software Project |
Purpose |
| Mkdocs |
Serves these Markdown documentation files. |
Development Only Services
If using the Docker containers (the development environment), you may have additional services:
Development Web
| Software Project |
Purpose |
| nginx |
Facilitates integration between development docker containers |
Archive
Separation of the API and the Archive service is necessary to prevent an overly complex API docker container.
| Software Project |
Purpose |
| Python |
The language of the Archive service. |
| Sanic |
An async web app framework, used to facilitate archiving of webpage in the development environment. |
| SingleFile |
Used to create Archives. |
| Readability |
Used to extract the article from an Archive. |
| Chromium |
Used to create Archives. |