Overview of WROLPi Systems
- WROLPi is based off Debian OS and Raspberry Pi OS
- WROLPi has several user-facing services:
- WROLPi services are started and maintained by
systemd. Logs are gathered by systemd.
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. |
React 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. |