Currently saving...Error. Not saved.Occam Archive ProjectQmbDRC7BFzyeANfuedASwuc35hMCLRq3p5yRnFKrLJ87pd5dskKz5ezs2hus1YeihSLrgAni9AiZ
Occam is an archival toolchain designed to support digital preservation of computational artifacts.
Using your operating system's package manager, install the following dependencies. Install
python3.4 or above along with
pip. You'll want to have some backend to run objects, so install and setup
docker. Note: that the user that runs Occam needs to be able to run Docker which usually means putting that user in the
Now, with the prerequisites out of the way, get the code:
git clone https://gitlab.com/occam-archive/occam occam
Which will create a directory called
occamwhich we can then go into to set up the rest of the system:
cd occam pip install -r dev-requirements.txt ./bin/occam system initialize
The command "system initialize" will create a database. At this point you can run occam using:
While will show the usage information. And you can use the following (while in this directory) to place occam in your path:
And to add this to your startup (again, while in the occam directory):
echo "export PATH=\$PATH:$PWD/bin" >> ~/.profile
The first thing you'll want to do is to create an account. The first account created on the system is automatically an administrator account. Replace
<username>with the username you wish. It will ask for a password which will be used later to authenticate this account.
occam accounts new <username>
Continue by installing a client, such as the web-client here.
These clients generally use Occam as a daemon and interact through this. To start a daemon:
occam daemon start
It will run in the background and can be closed using:
occam daemon stop
For a listing of command line options, type:
docs - code documentation src - root for all code |- occam.py - main application entrypoint \- occam - application code |- accounts - accounts component (handles account generation) |- backends - backends component (handles VM plugins) |- caches - caches component (manages cache services) |- commands - commands component (organizes cli commands) |- configurations - config component (handles configuration objects) |- daemon - daemon component (daemon service) |- databases - database component (handles db access) |- jobs - jobs component (handles running tasks) |- links - links component (manages links to objects) |- manifests - manifests component (generates tasks) |- network - network component (world network access) |- nodes - nodes component (organizes known nodes) |- notes - notes component (manages metadata) |- objects - objects component (manages objects) |- permissions - permissions component (manages access control) |- resources - resources component (stores/retrieves data) |- storage - storage component (handles data storage) |- system - system component (general system maintenance) \- workflows - workflows component (manages workflows)
We use Sphinx to parse documentation from the code into a set of HTML pages. To generate the code documentation, navigate to the docs directory and run:
This will produce a website in the
docs/htmldirectory. Running a web server here using:
python3 -m http.server 8000
Will make the documentation site available at http://localhost:8000.
The following are accepted and cherished forms of contribution:
- Filing a bug issue. (We like to see feature requests and just normal bugs)
- Fixing a bug. (It's obviously helpful!)
- Adding documentation. (Help us with our docs or send us a link to your blog post!)
- Adding features.
- Adding artwork. (Art is the true visual form of professionalism)
The following are a bit harder to really accept, in spite of the obvious effort that may go into them, so please avoid this:
- Rewriting all of the sass to whatever is newer. (It's happened to me before)
- Porting everything to rails.
- Creating a pull request with a "better" software license.
In general, contributions are easily provided by doing one of the following:
- Fork and clone the project.
- Update the code on your end however you see fit.
- Push that code to a public server.
- Create a pull request from your copy to ours.
The above is the most convenient process. You may create an issue with a link to a repository or tar/zip containing your code or patches as well, if git is not your thing.
All attribution and crediting for contributors is located within occam-web-client or by visiting
/acknowledgementsin any Occam website.
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Occam is licensed under the AGPL 3.0. Refer to the LICENSE.txt file in the root of the repository for specific details.
This section provides generated citations that are appropriate for this artifact. Sometimes, the citation is a paper or other artifact hosted elsewhere, but the authors of this artifact requested that be cited instead of the software itself.
Otherwise, the citation reflects this artifact and also has a tag for the revision (which represents this object at this specific point in time) which is enough to return to this, or a similar, page.
Pick a style above to generate the citation in the given format.
0 B 133 B data/extension- .gitignore 6 B data/extension- .python-version 3.12 KiB text/markdown CODE_OF_CONDUCT.md 33.71 KiB text/plain LICENSE.txt 5.46 KiB text/markdown README.md 0 B application/octet-stream bin 1.78 KiB data/extension-sample config.yml.sample 0 B application/octet-stream data 277 B text/plain dev-requirements.txt 0 B application/octet-stream docs 291 B application/json object.json 53 B text/ini pytest.ini 98 B text/plain requirements.txt 33 B data/extension-cfg setup.cfg 3.58 KiB text/x-python setup.py 0 B application/octet-stream src 0 B application/octet-stream tests 113 B text/ini tox.ini