You are considering creating a new collection to track terms with Open Terms Archive? Amazing!
First of all, define the metadata of the collection you would like to create.
Now that you have a clear idea what you would like to track, double-check that there are no existing federated collections that you could contribute to. If you have a doubt about whether some terms you want to track would fit a collection, reach out to the collection maintainers.
If no existing collection could be a good host for the terms you would like to track, then it is relevant to create your own.
Starting a new collection is an exciting endeavour, and would strongly benefit from the support of the community who already maintains existing collections. It is strongly recommended to share your intention to create a new collection as early as possible in the process, to get support and identify potential partners.
You can inform the community by posting on the instant messaging system, or sending an email to the core team.
Setting up and maintaining a collection over time needs fulfilling certain tasks on a regular basis. These tasks are handled through roles. To make sure that all these roles are covered, define the governance of your collection.
At any time, feel free to ask for help or partners in the community.
Collections rely on three git repositories being set up to hold the data.
The instructions below assume the usage of GitHub to host repositories. If you don’t use GitHub, try to set up the equivalent metadata in your git hosting platform. Contributions to the documentation to make it independent from GitHub are very welcome!
Create the collection declarations repository by using the demo-declarations
repository as template.
demo-declarations
repository<collection_id>-declarations
. For example: pga-declarations
.first-time-setup
GitHub action to make sure that everything ran fine.<collection_name>
. Maintained by <maintainer>
.”https://opentermsarchive.org
, or any other relevant dedicated website.terms-of-service
, terms-of-service-agreements
, terms-and-conditions
, open-terms-archive
.These settings ease the whole contribution process.
main
.validate_modified_declarations
and validate_schema
as required status checks.Issues labels will be added by the engine as problems are encountered when tracking. The default labels offered by GitHub, such as question
or wontfix
, are relevant for software development but less so for the process prescribed by Open Terms Archive.
Create the snapshots repository by using the demo-snapshots
repository as template:
demo-snapshots
repository<collection_id>-snapshots
.first-time-setup
GitHub action to make sure that everything ran fine.<collection_name>
. Maintained by <maintainer>
.”https://opentermsarchive.org
.terms-of-service
, terms-of-service-agreements
, terms-and-conditions
, open-terms-archive
.These settings aim at minimising the otherwise overwhelming amount of information and click targets.
Create the versions repository by using the demo-versions
repository as template:
demo-versions
repository<collection_id>-versions
.first-time-setup
GitHub action to make sure that everything ran fine.<collection_name>
. Maintained by <maintainer>
.”https://docs.opentermsarchive.org/navigate-history/
terms-of-service
, terms-of-service-agreements
, terms-and-conditions
, open-terms-archive
.These settings aim at minimising the otherwise overwhelming amount of information and click targets.
For collections to be included in the Open Terms Archive organisation only. For third parties, handle rights however you see fit.
<collection_name>
collection”ssh <username>@<host>
(usual usernames: debian
, ubuntu
…)ssh-keygen -q -N "" -f ~/.ssh/ota-deploy
authorized_keys
: cat ~/.ssh/ota-deploy.pub >> ~/.ssh/authorized_keys
ssh-add ~/.ssh/ota-deploy
(start the SSH agent before if necessary with eval ${ssh-agent -s}
)Note: user must have the right to sudo
.
Create the following secrets:
SERVER_FINGERPRINT
: obtained with ssh-keyscan -t ed25519 <host>
, example AAAAC3NzaC1lZDI1NTE5AAAAIPdUmZPDKAQLEI8dhsW6EsIHdMzLXbQOVdi2OFVfzF8e
SERVER_SSH_KEY
: use the previously generated server private keyFill deployment/inventory.yml
:
<host>
(example: 162.19.74.224
)ansible_user: <username>
(example: debian
)ed25519_fingerprint: <server_ssh_fingerprint>
deploy
action ran properly on the declarations repository.To test deployment from your local machine, your SSH keys must be authorized to connect to the server.
cd <path/to/><collection_id>-declarations/deployment
ansible-playbook opentermsarchive.deployment.deploy