4.2.1 Fork your own country configuration repository
The first step towards configuring your own country configuration of OpenCRVS is to fork our existing country configuration based on our demonstration country Farajaland - Repo: opencrvs-countryconfig. the following steps help you change the cloned Farajaland repo into your own country configuration fork.
📘 1. Pre-Fork Preparation
Before you fork, ensure the following:
✅ Use a GitHub Organisation
Forking must be done within a GitHub Organisation, not a personal account.
The Organisation must be on a GitHub Team or Enterprise plan (required for branch protection rules).
You must have Admin rights in that Organisation.
🧱 Choose a Clear Repository Name
When you ran the bash setup.sh script in step 3.1.2 to install OpenCRVS locally, the country configuration repo for Farajaland was cloned into the same parent directory as opencrvs-core, as you are probably aware. The first thing that you want to do is to change the name of the cloned opencrvs-countryconfig directory to something like "opencrvs-<your country>".
Use this naming convention:
opencrvs-<your country name>
🌿 Plan Your Branching Strategy
We strongly recommend that you set up a Gitflow branching strategy on your repo to ensure that you can configure on feature branches, merge them into develop for testing and main or master for releases.
main
Production-ready configuration
develop
QA or staging configuration
feature/*
Temporary configuration work
hotfix/*
Urgent production fixes
👥 Define Governance
Add country team members, reviewers, and DevOps maintainers.
🧑💻 2. Forking the Template Repository
Go to the OpenCRVS CountryConfig template: 👉 https://github.com/opencrvs/opencrvs-countryconfig
Click “Fork” in the top-right corner.
Select your GitHub Organisation as the destination.
Name it using the convention above.
Clone your new fork locally:
git clone [email protected]:<your-org>/opencrvs-countryconfig-<countryname>.git cd opencrvs-<countryname>
Add the official OpenCRVS template as an upstream remote. This will help you keep your configuration up to date when new releases are launched:
git remote add upstream https://github.com/opencrvs/opencrvs-countryconfig.git🔒 3. Configure Branch Protection Rules To maintain code integrity and review processes:

Go to your new repository on GitHub.
Navigate to: Settings → Branches → Add Branch Protection Rule
Add a rule for the main branch (and optionally develop):
✅ Require pull request reviews before merging
✅ Require status checks to pass before merging (if CI is configured)
✅ Require signed commits (recommended)
✅ Restrict who can push to matching branches (e.g., Admins only)
Save the rule and test it with a dummy PR.
Last updated