A script that archives posts from Gaza Verified profiles (https://gaza-verified.org) to several backends
Find a file
Fabio Manganiello bbc1e4027a
(Temporarily) disable Molly Shah verification source.
While pending alignment on the verification framework.
2025-10-11 16:09:12 +02:00
backend (Temporarily) disable Molly Shah verification source. 2025-10-11 16:09:12 +02:00
frontend Refactor backend server context management and enhance frontend HTML 2025-10-11 03:22:28 +02:00
nginx Simplified nginx.conf 2025-10-11 04:16:15 +02:00
.env.example Add RSS feed support for accounts, posts, and media 2025-10-01 11:38:11 +02:00
.gitignore Added frontend files 2025-09-28 18:22:58 +02:00
docker-compose.yml Re-added nginx dependency 2025-10-11 04:07:50 +02:00
LICENSE License updated 2025-09-26 03:17:47 +02:00
Makefile Removed frontend build container and switched to local build 2025-09-29 01:36:59 +02:00
README.md Added RSS feeds reference to README.md 2025-10-05 20:05:01 +02:00

gaza-archive

The purpose of this project is to provide a permanent archive of social media posts from verified accounts from Gaza.

As censorship of Palestinian voices may mount also on decentralized social media platforms just like it did on centralized ones, this archive is intended to be a resource for future research and historical documentation.

This project will periodically scrape those profiles for new content and archive any new activities, including their profiles metadata, all the public posts and media attachments.

The official mirror of the archive is available at archive.gaza.onl.

Installation

Dependencies:

cp .env.example .env
# Modify .env file as needed

# Build the frontend files (this should only be required once, or when the
# frontend code is updated)
make

# Start all the services
docker compose up

After the initial sync is completed you will be able to query data from the SQLite database under ./data/app.db, and all attachments will be stored under ./data/media, indexed by username.

Web interface

After starting the services, and after the initial sync is completed, you can access a web interface at http://localhost:8000 to browse the archived content.

Browse raw media

After starting the services, and after the initial sync is completed, you can browse the raw media files at http://localhost:8000/media, indexed by user handle.

API

An OpenAPI specification is available at http://localhost:8000/api/v1/openapi.json once the backend is running.

If you run the service in docker-compose you can also access a Swagger UI at http://localhost:8000/swagger.

RSS

All public list API endpoints are also available as RSS feeds by appending /rss, for example /api/v1/posts/rss.