A script that archives posts from Gaza Verified profiles (https://gaza-verified.org) to several backends
Find a file
2025-10-01 22:35:48 +02:00
backend Added RSS feeds and page metadata for better integration with feed readers and social media platforms 2025-10-01 12:08:02 +02:00
frontend All datetimes on the db are in GMT, so they should get a Z before being converted to local 2025-10-01 22:35:48 +02:00
nginx Fallback to /index.html for static pages (ensures that Vue routes work properly even when loaded directly) 2025-09-29 12:02:17 +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 Removed frontend build container and switched to local build 2025-09-29 01:36:59 +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 Removed frontend build container and switched to local build 2025-09-29 01:36:59 +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.