Create your own off-grid library.
WROLPi is a self-contained collection of software to help you survive the world Without Rule of Law.
WROLPi is intended to be run on a Raspberry Pi with an optional external drive attached. It serves up it's own Wi-Fi network so that any user with a laptop/tablet/phone can connect and use the library created by the maintainer.
- WROLPi is in Beta!
- Expect things to change!
- Features
- Demo
- Download
- Try WROLPi
- Debian 12 Install
- Raspberry Pi Install
- Charter
- Upgrading WROLPi
- Join
- Videos
- Web Archives
- Maps
- Wikipedia
- File search
- eBooks (EPUB / PDFs)
- Wi-Fi Hotspot
- Universal search
- Food Inventory management
- One-Time pad generator, encrypter/decrypter
- Synchronizer/duplicator
- Food storage calculator
Module | View | Search | Download | Project |
---|---|---|---|---|
Videos | yes | yes | yes | yt-dlp |
Web Archives | yes | yes | yes | Singlefile |
Wikipedia | yes | yes | yes | Kiwix |
eBooks | yes | yes | planned | EPUB/PDF |
Map | yes | planned | planned | OpenStreetMap |
Podcasts/Audio | yes | planned | planned |
Images are available at wrolpi.org
You can try out WROLPi by running the docker containers.
- Install docker-ce and docker-compose
- Copy the latest WROLPi code.
git clone https://github.com/lrnselfreliance/wrolpi.git
- Change directory into the code base.
cd wrolpi
- Initialize git submodules
git submodule update --init
- Build the containers.
docker-compose build --parallel
- Create volumes.
docker volume create --name=openstreetmap-data
docker volume create --name=openstreetmap-rendered-tiles
- Start the database.
docker-compose up -d db
- Initialize the database.
docker-compose run --rm api db upgrade
- Start the docker containers.
docker-compose up
- Browse to WROLPi.
Steps necessary to initialize your WROLPi after installing the Debian image from wrolpi.org
- Download and copy a pre-built Debian image from https://wrolpi.org onto a USB thumb-drive (USB 2 recommended)
- Insert the thumb-drive into the laptop, boot to the thumb-drive
- Select "Start Installer"
- Install Debian 12 as you would like.
- It is recommended to use the hostname wrolpi
- (WROLPi will be installed during the installation without your intervention.)
- Unplug the thumb-drive after the installation has completed
- Login as the user you created during installation.
- Switch to the root user:
su -
- Initialize the WROLPi databases using the repair script:
/opt/wrolpi/repair.sh
- Reboot:
reboot
- Browse to https://wrolpi.local or the IP address of your WROLPi!
Steps necessary to initialize your WROLPi after installing the Raspberry Pi image from wrolpi.org
- Download and copy a pre-built image from https://wrolpi.org onto an SD card.
- Boot the Raspberry Pi, login with username pi and password wrolpi.
- Modify fstab to mount your external drive to /media/wrolpi (modify this command to match your system).
echo '/dev/sda1 /media/wrolpi auto defaults,nofail 0 0' | sudo tee -a /etc/fstab
- Initialize the WROLPi databases using the repair script:
sudo /opt/wrolpi/repair.sh
- Reboot
sudo reboot
- Join the Hotspot or browse to https://wrolpi.local or the IP address of your WROLPi!
- Storage is cheaper than power.
- Two is one, one is none.
- Run silently.
- Primary, secondary, tertiary.
- A WROLPi instance should be capable of running with a minimal of hardware:
- Raspberry Pi
- SD card
- External USB hard drive
- Power supply and cables
- Wi-Fi USER device such as a phone, tablet, or laptop.
- A WROLPi instance should consume a minimal amount of electricity during WROL event. It is expected power will be scarce when WROLPi is needed most.
- A WROLPi instance should be run and maintained by a person (MAINTAINER) with a moderate amount of Linux and Raspberry Pi experience. It is expected that they should be able to do this using only the documentation on their WROLPi.
- A WROLPi instance should be able to "factory-reset" itself without any outside services.
- WROLPi should function completely without any internet services.
- A user should have easy access to their data if WROLPi fails:
- For example, a user can watch their videos by navigating a short and intuitive directory structure and opening the video in their preferred video player.
- WROLPi should be self-documented. The UI should contain a tutorial for USERS as well as the MAINTAINER.
- If the UI isn't functional, the code should be documented such that a user can restore functionality.
- WROLPi should favor pre-processing, rather than processing during a WROL event. Such as re-encoding a video, or processing captions. This is to ensure that when a user adds content during non-WROL time, the processing for optimum performance is already done for a WROL event.