wrolpi-help/docs/system/index.md
2024-06-19 15:27:06 -06:00

5.9 KiB

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.