- Language: Python (primarily)
- License: AGPL
- VCS: git
- Major libraries: Django, gearman (Python API)
- Coding style
Archivematica consists of several projects working together.
- Archivematica: Main repository containing the user-facing dashboard, task manager MCPServer and clients scripts for the MCPClient
- Storage Service: Responsible for moving files to Archivematica for processing, and from Archivematica into storage
- Format Policy Registry: Submodule shared between Archivematica and the Format Policy Registry (FPR) server that displays and updates FPR rules and commands
There are also several smaller repositories that support Archivematica in various ways. In general, you will not need these to develop on Archivematica.
- Development tools: Scripts to help with development. E.g. restarting services, workflow analysis
- FPR tools: All the tools, commands and rules used to populate the FPR database. Changes to the FPR should be submitted here.
- Archivematica Documentation: Documentation found at https://www.archivematica.org/en/docs/ Note that storage service documentation is found in the storage service repository.
- Automation Tools: Scripts used to automate processing material through Archivematica
- Deployment: Ansible scripts for deploying and configuring Archivematica
- Deployment-Archivematica: Ansible playbook for Archivematica package install.
- Deployment-Archivematica-dev: Ansible playbook for Archivematica github install.
- Fixity checker: Commandline tool that assists in checking fixity for AIPs stored in Archivematica Storage Service instances.
- Sample data: Data to test and show off Archivematica's processing
- History: Contains the pre-git history of Archivematica. Useful for checking the origins of code.
There are two main ways to run Archivematica in development.
- Use ansible and vagrant to install Archivematica in a VM
- Install Archivematica on your development machine
Ansible & Vagrant
To install and run Archivematica from source on a VM:
- Checkout deployment repo
git clone firstname.lastname@example.org:artefactual/deploy-pub.git
- Temporary: switch to playbooks/archivematica branch
git checkout playbooks/archivematica
- Install VirtualBox, Vagrant, Ansible
sudo apt-get install virtualbox vagrant
- Vagrant must be at least 1.5
sudo pip install ansible
- Create machine
- Will prompt for sudo to modify /etc/hosts adding am-local.myapp.dev
- Login now available (but nothing needs to be run on the VM)
- Get updates to roles
ansible-galaxy install -r requirements.yml [--force]
- Execute playbook
ansible-playbook -i hosts singlenode.yml
- Archivematica should be available at 192.168.168.192 and the storage service at 192.168.168.192:8000
You may want to add this to your .ssh/config
Host 192.168.168.* *.myapp.dev StrictHostKeyChecking no UserKnownHostsFile=/dev/null User root LogLevel ERROR