https://github.com/lrnselfreliance/wrolpi
Create your own off-grid library
https://github.com/lrnselfreliance/wrolpi
censorship censorship-resistance off-grid prepper raspberry-pi singlefile youtube yt-dlp yt-dlp-wrapper
Last synced: about 2 months ago
JSON representation
Create your own off-grid library
- Host: GitHub
- URL: https://github.com/lrnselfreliance/wrolpi
- Owner: lrnselfreliance
- License: gpl-3.0
- Created: 2019-10-09T23:11:51.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-03-29T18:43:07.000Z (about 2 years ago)
- Last Synced: 2024-03-29T19:43:21.504Z (about 2 years ago)
- Topics: censorship, censorship-resistance, off-grid, prepper, raspberry-pi, singlefile, youtube, yt-dlp, yt-dlp-wrapper
- Language: JavaScript
- Homepage: https://wrolpi.org
- Size: 7.86 MB
- Stars: 50
- Watchers: 3
- Forks: 5
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WROLPi
[](https://app.circleci.com/pipelines/github/lrnselfreliance/wrolpi?branch=release&filter=all)
[](https://github.com/lrnselfreliance/wrolpi/blob/master/LICENSE)
[](https://discord.gg/HrwFk7nqA2)
[](https://gitpod.io/#https://github.com/lrnselfreliance/wrolpi)
**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.
# Table of Contents
* [Features](#features)
* [Demo](#demo)
* [Download](#download)
* [Try WROLPi](#try-wrolpi)
* [Docker Documentation](docker/README.md)
* [Debian 12 Install](#debian-12-install)
* [Raspberry Pi Install](#raspberrypi-install)
* [Charter](#charter)
* [Upgrading WROLPi](UPGRADE.md)
* [Join](#join)
# Features
- [x] Videos
- [x] Web Archives
- [x] Maps
- [x] Wikipedia
- [x] File search
- [x] eBooks (EPUB / PDFs)
- [x] Wi-Fi Hotspot
- [x] Universal search
- [x] Food Inventory management
- [x] One-Time pad generator, encrypter/decrypter
- [ ] Synchronizer/duplicator
- [ ] Food storage calculator
## Module features matrix
| **Module** | **View** | **Search** | **Download** | **Project** |
|----------------|----------|:-----------|--------------|------------------------------------------------------------|
| Videos | yes | yes | yes | [yt-dlp](https://github.com/yt-dlp/yt-dlp) |
| Web Archives | yes | yes | yes | [Singlefile](https://github.com/gildas-lormeau/SingleFile) |
| Wikipedia | yes | yes | yes | [Kiwix](https://www.kiwix.org) |
| eBooks | yes | yes | planned | EPUB/PDF |
| Map | yes | yes | yes | [Protomaps](https://protomaps.com/) |
| Podcasts/Audio | yes | planned | planned | |
# Demo

# Download
Images are available at [wrolpi.org](https://wrolpi.org)
# Try WROLPi!
You can try out WROLPi by running the docker containers.
1. [Install docker-ce](https://docs.docker.com/install/linux/docker-ce/debian/) and
[docker-compose](https://docs.docker.com/compose/install/)
2. Copy the latest WROLPi code.
* `git clone https://github.com/lrnselfreliance/wrolpi.git`
3. Change directory into the code base.
* `cd wrolpi`
4. Initialize git submodules
* `git submodule update --init`
5. Build the containers.
* `docker-compose build --parallel`
6. Create volumes.
* `docker volume create --name=openstreetmap-data`
* `docker volume create --name=openstreetmap-rendered-tiles`
7. Start the database.
* `docker-compose up -d db`
8. Initialize the database.
* `docker-compose run --rm api db upgrade`
9. Start the docker containers.
* `docker-compose up`
10. Browse to WROLPi.
* https://0.0.0.0:8443
More Docker documentation is available in [docker/README.md](docker/README.md)
# Debian 12 Install
Steps necessary to initialize your WROLPi after installing the Debian image from wrolpi.org
1. Download and copy a pre-built Debian image from https://wrolpi.org onto a USB thumb-drive (USB 2 recommended)
2. Insert the thumb-drive into the laptop, boot to the thumb-drive
1. Select "Start Installer"
2. Install Debian 12 as you would like.
1. It is recommended to use the hostname **wrolpi**
2. (WROLPi will be installed during the installation without your intervention.)
3. Unplug the thumb-drive after the installation has completed
4. Login as the user _you_ created during installation.
5. Switch to the root user: `su -`
6. Initialize the WROLPi databases using the repair script: `/opt/wrolpi/repair.sh`
7. Reboot: `reboot`
8. Browse to https://wrolpi.local or the IP address of your WROLPi!
# Raspberry Pi Install
Steps necessary to initialize your WROLPi after installing the Raspberry Pi image from wrolpi.org
1. Download and copy a pre-built image from https://wrolpi.org onto an SD card.
2. Boot the Raspberry Pi, login with username pi and password wrolpi.
3. 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`
4. Initialize the WROLPi databases using the repair script: `sudo /opt/wrolpi/repair.sh`
5. Reboot `sudo reboot`
6. Join the Hotspot or browse to https://wrolpi.local or the IP address of your WROLPi!
# Charter
## Guiding Principals
1. Storage is cheaper than power.
2. Two is one, one is none.
3. Run silently.
4. Primary, secondary, tertiary.
5. Secure as a bookshelf in your home.
## Physical properties
1. 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.
2. 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.
## User expectations
1. 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.
## Software properties and capabilities
1. A WROLPi instance should be able to "factory-reset" itself without any outside services.
2. WROLPi should function completely without any internet services.
3. 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.
4. 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.
5. 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.
# Join!
[Join our Discord](https://discord.gg/HrwFk7nqA2)