wrolpi-help/docs/system/index.md
Roland a6cace93f8
Document SQLite database and remove Postgres references.
WROLPi no longer runs PostgreSQL; the API database is SQLite in the media
directory and maps use PMTiles. Update help pages, service tables, and
example diagnostics accordingly.
2026-07-18 13:17:27 -06:00

6 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 Caddy web server which facilitates communication between the other services, handles HTTPS with self-signed certificates.

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
SQLite Facilitates searching of files, scheduling downloads, and much more.

The database file lives at /media/wrolpi/config/wrolpi.db. See Databases.

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.
PMTiles Offline map tiles stored as files under map/.
MapLibre GL JS Map viewer in the browser.

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
Caddy 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.