- Lua 71.7%
- HTML 12.2%
- Shell 4.6%
- C 3.8%
- JavaScript 2.9%
- Other 4.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| core_schema | ||
| docker | ||
| examples | ||
| ext | ||
| src | ||
| templates | ||
| test | ||
| .gitignore | ||
| .gitmodules | ||
| .local.env | ||
| CODE_OF_CONDUCT | ||
| LICENSE | ||
| Makefile | ||
| pocket_archive-scm-0.rockspec | ||
| README.md | ||
| run_tests.lua | ||
Pocket Archive
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. 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.
Rockspecs
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.