selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Archivematica logo

Self-host Archivematica

v1.18.0

Open-source digital preservation for long-term access

ReleaseOpen SourceAGPL-3.0
Updated5 days ago
LanguagePython
Setup difficultyAdvanced
Stars
522
CPU
2 CPU cores
RAM
2GB+
Storage
7GB plus two to three times the disk space required for the collection being processed
Ports
80 (nginx proxy to Archivematica Dashboard), 8000 (nginx proxy to Archivematica Storage Service), 3306 (MySQL database), 9200 (Elasticsearch), 4730 (Gearman job server), 3310 (ClamAV antivirus daemon)
Requires
Java
Install with Linux
Archivematica dashboard screenshot 1Archivematica dashboard screenshot 2Archivematica dashboard screenshot 3Archivematica dashboard screenshot 4

What is Archivematica?

Archivematica is a web-based digital preservation application for archivists, librarians, and memory institutions. It processes digital objects from ingest through to access following the ISO-OAIS functional model, creating trustworthy Archival Information Packages using METS, PREMIS, Dublin Core, and BagIt standards. Users control preservation micro-services through a web dashboard. The system supports multiple ingest workflows including BagIt, digital forensic images, SIP arrangement, and dataset management. A Format Policy Registry handles format identification and normalization, linked to PRONOM. Production installations run on Ubuntu 24.04 or Rocky Linux 9 via Ansible or manual packages; Docker Compose is available for development. Optional Elasticsearch 8.x provides search across backlog, appraisal, and archival storage. Paid support, hosting, training, and consulting are offered by Artefactual Systems.

Should you self-host Archivematica?

Archivematica scores 57/100 on selfhost.directory (how scoring works) and ranks #5 of 12 in Archiving & Preservation. It has 522 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is AGPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is ArchiveBox (79/100, 28 896 stars). It scores higher overall, so compare the two before you pick. See Archivematica vs ArchiveBox side by side.

Features

  • Advanced search and storage management
  • Anti-virus scanning (ClamAV)
  • CAS authentication
  • Digital preservation (ISO-OAIS compliance)
  • Format Policy Registry (FPR)
  • LDAP Authentication
  • Multiple ingest workflows
  • OIDC Authentication
  • REST API
  • SAML/Shibboleth authentication
  • Standards-based packaging (METS, PREMIS, BagIt)
  • Storage Service integration
  • Third-party system integrations
  • Web-based Dashboard

Archivematica README

How to install Archivematica

Install Archivematica with Linux

Installing Archivematica on Rocky Linux 9 (Blue Onyx)

Officially supported production deployment method

How to configure Archivematica

  • AM_GUNICORN_RELOADEnables gunicorn auto-reload for Archivematica Dashboard in development

    Enables gunicorn auto-reload for Archivematica Dashboard in development

    values: true, false

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_CSP_ENABLEDEnables Content Security Policy support in the Dashboard

    Enables Content Security Policy support in the Dashboard

    values: true, false

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_CSRF_COOKIE_HTTPONLYfalseControls whether CSRF cookies are accessible only via HTTP(S), not JavaScript

    Controls whether CSRF cookies are accessible only via HTTP(S), not JavaScript

    values: true, false

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_CSRF_COOKIE_SAMESITEStrictControls SameSite attribute for CSRF cookies

    Controls SameSite attribute for CSRF cookies

    values: Strict, Lax, None

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_CSRF_COOKIE_SECUREtrueControls whether CSRF cookies are only sent over HTTPS

    Controls whether CSRF cookies are only sent over HTTPS

    values: true, false

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_SESSION_COOKIE_HTTPONLYtrueControls whether session cookies are accessible only via HTTP(S), not JavaScript

    Controls whether session cookies are accessible only via HTTP(S), not JavaScript

    values: true, false

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_SESSION_COOKIE_SAMESITEStrictControls SameSite attribute for session cookies

    Controls SameSite attribute for session cookies

    values: Strict, Lax, None

  • ARCHIVEMATICA_DASHBOARD_DASHBOARD_SESSION_COOKIE_SECUREtrueControls whether session cookies are only sent over HTTPS

    Controls whether session cookies are only sent over HTTPS

    values: true, false

  • ARCHIVEMATICA_MCPCLIENT_MAX_TASKS_PER_CHILDDefines the maximum number of tasks a worker can execute before being replaced

    Defines the maximum number of tasks a worker can execute before being replaced

    values: integer

  • ARCHIVEMATICA_MCPCLIENT_WORKERSnumber of CPUsDefines the number of MCPClient workers

    Defines the number of MCPClient workers

    values: integer

  • CSRF_COOKIE_HTTPONLYtrueStorage Service: Controls whether CSRF cookies are accessible only via HTTP(S), not JavaScript

    Storage Service: Controls whether CSRF cookies are accessible only via HTTP(S), not JavaScript

    values: true, false

  • CSRF_COOKIE_SAMESITEStrictStorage Service: Controls SameSite attribute for CSRF cookies

    Storage Service: Controls SameSite attribute for CSRF cookies

    values: Strict, Lax, None

  • CSRF_COOKIE_SECUREtrueStorage Service: Controls whether CSRF cookies are only sent over HTTPS

    Storage Service: Controls whether CSRF cookies are only sent over HTTPS

    values: true, false

  • REQUESTS_CA_BUNDLEPath to custom CA bundle for HTTP requests

    Path to custom CA bundle for HTTP requests

    values: /etc/ssl/certs/ca-certificates.crt (Ubuntu), /etc/pki/tls/certs/ca-bundle.crt (Rocky Linux)

  • SESSION_COOKIE_HTTPONLYtrueStorage Service: Controls whether session cookies are accessible only via HTTP(S), not JavaScript

    Storage Service: Controls whether session cookies are accessible only via HTTP(S), not JavaScript

    values: true, false

  • SESSION_COOKIE_SAMESITEStrictStorage Service: Controls SameSite attribute for session cookies

    Storage Service: Controls SameSite attribute for session cookies

    values: Strict, Lax, None

  • SESSION_COOKIE_SECUREtrueStorage Service: Controls whether session cookies are only sent over HTTPS

    Storage Service: Controls whether session cookies are only sent over HTTPS

    values: true, false

  • SS_CSP_ENABLEDStorage Service: Enables Content Security Policy support

    Storage Service: Enables Content Security Policy support

    values: true, false

  • SS_GUNICORN_RELOADEnables gunicorn auto-reload for Storage Service in development

    Enables gunicorn auto-reload for Storage Service in development

    values: true, false

Archivematica releases & version history

FAQ

I try to create a new transfer, but nothing happens. What can I do?

Check file permissions in the transfer source directory, wait for large transfers to initialize, verify system timeouts aren't being exceeded, and if the transfer reached the shared directory but doesn't appear in the dashboard, restart services in order: gearmand, archivematica-mcp-server, archivematica-mcp-client, and archivematica-dashboard.

I am getting a white error page in the Dashboard. How can I find out what the error is?

Check the Archivematica logs stored in /var/log/archivematica/ which capture relevant events including warnings and errors from all services including the Dashboard.

Something is not working right, or I need to stop a hanging transfer. What can I do?

Restart the Gearman service and each Archivematica component (mcp-server, mcp-client, dashboard, storage-service) in that order. Other dependent services include ClamAV, Elasticsearch, MySQL/MariaDB, and Nginx.

My Archivematica disk filled up and now Archivematica won't work. How can I fix this?

Clean up the disk by removing failed or rejected transfers and excessive /tmp data. Reset the MySQL/MariaDB database, restart Archivematica components in order, and set Elasticsearch back into write mode using a curl command to remove the read-only block.

More in Archiving & Preservation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…