Compact, fast, low-maintenance digital archive.
  • Lua 72.9%
  • HTML 11.9%
  • Shell 4.4%
  • C 3.5%
  • JavaScript 2.8%
  • Other 4.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
scossu afbb4564d9
All checks were successful
Run unit tests / tests (5.4) (push) Successful in 1m55s
Run unit tests / tests (5.5) (push) Successful in 1m52s
Add button in admin homepage to regenerate site.
2026-11-08 22:36:34 -05:00
.forgejo/workflows Use PR ref to checkout repo in CI in a PR. 2026-10-30 11:31:34 -04:00
core_schema Transformer improvements (#98) 2026-11-08 03:37:52 +00:00
docker Minor updates: 2026-10-26 14:48:07 -04:00
examples Transformer improvements (#98) 2026-11-08 03:37:52 +00:00
ext backup (#95) 2026-10-29 23:07:28 +00:00
src Add button in admin homepage to regenerate site. 2026-11-08 22:36:34 -05:00
templates Add button in admin homepage to regenerate site. 2026-11-08 22:36:34 -05:00
test Transformer improvements (#98) 2026-11-08 03:37:52 +00:00
.gitignore v1.0b5: 2026-01-11 18:29:15 -05:00
.gitmodules WIP docker setup. 2026-01-08 08:55:51 -05:00
.local.env Some inconsequential changes. 2026-07-15 15:56:15 -04:00
CODE_OF_CONDUCT Parole parole parole. 2025-07-16 21:27:24 -04:00
LICENSE Parole parole parole. 2025-07-16 21:27:24 -04:00
Makefile Implement controlled vocabularies (#97) 2026-11-05 20:34:25 +00:00
pocket_archive-scm-0.rockspec Implement controlled vocabularies (#97) 2026-11-05 20:34:25 +00:00
README.md Implement controlled vocabularies (#97) 2026-11-05 20:34:25 +00:00
run_tests.lua Transformer improvements (#98) 2026-11-08 03:37:52 +00:00

Pocket Archive

Pocket Archive "PKAR" logo

The idea

Stick it in your pocket and carry it around. Install it on a cloud server. Install it on a Raspberry Pi. Browse it offline. Browse it online. Duplicate it, share it, harvest it and aggregate it. Feed it non-GMO spreadsheets regularly and it will thrive.

A more sensical description

Pocket Archive is a digital archival system and static site generator for small- to medium-sized archives with hundreds to tens of thousands of items. It is designed to function in environments with unreliable connectivity and requires very low technical and human resources to set up, run, and use.

Pocket Archive fulfills the following business functions:

  • Storage and management of files and metadata-only resources
  • Management of descriptive, administrative, and technical metadata
  • Static site generation (presentation)

Some interesting features it currently provides:

  • Bulk content creation and updates are done by pushing spreadsheets (CSV) and data packages to a drop box
  • Highly customizable content model with user-definable relationships between resources
  • Able to run a presentation site and search form a thumb drive, without an Internet connection
  • Fully implementing Linked Data under the hood, hiding its ugly parts from the end user

In spite of its design simplicity, Pocket Archive strives to be flexible. It is based on Volksdata, a very compact Linked Data store and manipulation library. There is no restriction to the types and schema of metadata allowed, or the file types supported. A file-based configuration allows to set up content types and validation rules, or to have (almost) no rules at all.

Pocket Archive is designed to reinvent as little as possible and to use standard tools found in open source operating systems to provide a full management and preservation environment. It creates and updates resources using spreadsheets instead of running a web user interface; it writes all contents to disk and metadata in an embedded database that can be archived, replicated, backed up, and restored with reliable UNIX tools such as tar, rsync, etc.

Quickstart

The simplest way to test this project is to use Docker. You will need Git and Docker Compose installed in your host machine.

git clone --depth=1 https://git.knowledgetx.com/ktx/pocket_archive.git
cd docker
docker compose up

This will bring up a Pocket Archive instance running the submission watchdog, one running the admin interface, and a simple HTTP server for the static site.

For more information about this setup, see the Test drive guide on the documentation site.

Native install

Pocket Archive is installed natively via Luarocks:

luarocks install pocket_archive

For the latest stable version. To build the most current development version, clone this repo and run:

luarocks build

In the top directory.

Versioned rockspec files (except from scm) are no longer kept in this archive as they complicate the deployment process. Current and historic versions can be found in the Luarocks page of this project.

Documentation

The full user documentation sources are in the pkar_doc repository and published at pkar.cc.

API documentation is in progress.