Repository Setup
This guide walks you through creating and configuring CapSign's GitHub repositories from the local workspace.
๐ Quick Links
Secrets Configuration - Essential secrets configuration checklist
Optional Services - Third-party services guide (Infracost, FOSSA)
SOC Compliance - SOC 1/2/3 certification requirements
๐ Repository Structure
Individual Repositories to Create
github.com/capsign/infrastructure
(PUBLIC)Source:
./infrastructure/
directoryPurpose: Infrastructure as Code for blockchain deployment on AWS
github.com/capsign/helm-charts
(PUBLIC)Source:
./helm-charts/
directoryPurpose: Kubernetes Helm charts for blockchain nodes and monitoring
github.com/capsign/.github
(PUBLIC)Source:
./.github/profile/
directoryPurpose: Organization profile showcasing the CapSign ecosystem
github.com/capsign/docs
(PUBLIC)Source:
./docs/
directoryPurpose: GitBook documentation hosted at docs.capsign.com
github.com/capsign/.github-private
(PRIVATE)Source:
./.github-private/
directoryPurpose: Internal team workflows and automation
โ ๏ธ PRIVATE REPOSITORY - for team members only
๐ Repository Creation Steps
โ ๏ธ IMPORTANT: Follow this exact order to avoid CI/CD failures:
1. Create Empty Repositories on GitHub
Create these repositories on GitHub without initializing them (no README, .gitignore, or license):
github.com/capsign/infrastructure
(PUBLIC)
github.com/capsign/infrastructure
(PUBLIC)Description: Infrastructure as Code for blockchain deployment on AWS using Terraform and Kubernetes.
github.com/capsign/helm-charts
(PUBLIC)
github.com/capsign/helm-charts
(PUBLIC)Description: Kubernetes Helm charts for deploying blockchain nodes and monitoring infrastructure.
github.com/capsign/.github
(PUBLIC)
github.com/capsign/.github
(PUBLIC)Description: CapSign organization profile showcasing our open source blockchain infrastructure ecosystem.
github.com/capsign/docs
(PUBLIC)
github.com/capsign/docs
(PUBLIC)Description: Comprehensive GitBook documentation with guides, tutorials, and API references.
github.com/capsign/.github-private
(PRIVATE)
github.com/capsign/.github-private
(PRIVATE)Description: Internal team workflows, templates, and automation for the CapSign organization.
๐ Repository Creation Notes:
โ Do NOT initialize with README, .gitignore, or license
โ Set correct visibility (PUBLIC for first 4, PRIVATE for .github-private)
โ Use exact repository names as shown above
โ Enable Issues and Discussions for public repos
โ Restrict .github-private to team members only
2. Configure Secrets (BEFORE Pushing Code!)
โ ๏ธ CRITICAL: Set up all required secrets now using secrets configuration guide
If you push code before setting up secrets, all CI/CD workflows will fail!
3. Push Infrastructure Repository
cd infrastructure/
git init
git add .
git commit -m "feat: initial Terraform infrastructure for AWS EKS blockchain deployment"
git branch -M main
git remote add origin [email protected]:capsign/infrastructure.git
git push -u origin main
4. Push Helm Charts Repository
cd ../helm-charts/
git init
git add .
git commit -m "feat: initial Helm charts for blockchain infrastructure"
git branch -M main
git remote add origin [email protected]:capsign/helm-charts.git
git push -u origin main
5. Push Organization Profile Repository
mkdir capsign-github-profile
cd capsign-github-profile/
mkdir -p .github/profile/
cp ../capsign/.github/profile/README.md .github/profile/
git init
git add .
git commit -m "feat: initial organization profile"
git branch -M main
git remote add origin [email protected]:capsign/.github.git
git push -u origin main
6. Push Documentation Repository
cd ../docs/
git init
git add .
git commit -m "feat: initial GitBook documentation with comprehensive guides"
git branch -M main
git remote add origin [email protected]:capsign/docs.git
git push -u origin main
7. Push Private Team Workflows Repository
mkdir capsign-github-private
cd capsign-github-private/
cp -r ../capsign/.github-private/* .
git init
git add .
git commit -m "feat: initial private team workflows and templates"
git branch -M main
git remote add origin [email protected]:capsign/.github-private.git
git push -u origin main
โ ๏ธ Important: Set this repository to PRIVATE immediately after creation.
๐ Pre-Creation Checklist
Before creating the repositories, ensure:
Infrastructure Repository
Helm Charts Repository
Organization Profile
๐ง Post-Creation Setup
After creating repositories:
Enable GitHub Features
Branch Protection Rules
- Require pull request reviews before merging - Require status checks to pass before merging - Require branches to be up to date before merging - Include administrators
GitHub Discussions
Enable for both repositories
Create initial categories (General, Q&A, Ideas, etc.)
Security Features
Enable Dependabot alerts
Enable secret scanning
Enable code scanning (CodeQL)
Repository Settings
Add repository description
Add topics/tags for discoverability
Set up repository social preview image
โ
Verification Checklist
After setup is complete:
๐ Troubleshooting
Common Issues
AWS Authentication Failures
Error: could not retrieve caller identity
Solutions:
Verify
AWS_ROLE_ARN
is correct and role existsCheck trust policy allows GitHub Actions
Ensure OIDC provider thumbprint is current
Test with
aws sts get-caller-identity
locally
Terraform State Backend Issues
Error: Failed to configure the backend "s3"
Solutions:
Ensure S3 bucket exists and is accessible
Verify DynamoDB table exists for locking
Check bucket name in
backend.tf
matches secretConfirm AWS permissions include S3/DynamoDB access
Kubernetes Connection Problems
Error: couldn't get current server API group list
Solutions:
Verify
KUBECONFIG_DATA
is base64 encoded correctlyEnsure EKS cluster is running and accessible
Check cluster name and region match configuration
Update kubeconfig:
aws eks update-kubeconfig --region us-west-2 --name capsign-cluster
For more troubleshooting help, see our common issues guide.
Ready to make CapSign repositories live? Follow this guide step by step! ๐
This guide walks you through creating and configuring CapSign's GitHub repositories from the local workspace.
๐ Quick Links
Secrets Configuration - Essential secrets configuration checklist
Optional Services - Third-party services guide (Infracost, FOSSA)
SOC Compliance - SOC 1/2/3 certification requirements
๐ Repository Structure
Individual Repositories to Create
github.com/capsign/infrastructure
(PUBLIC)Source:
./infrastructure/
directoryPurpose: Infrastructure as Code for blockchain deployment on AWS
github.com/capsign/helm-charts
(PUBLIC)Source:
./helm-charts/
directoryPurpose: Kubernetes Helm charts for blockchain nodes and monitoring
github.com/capsign/.github
(PUBLIC)Source:
./.github/profile/
directoryPurpose: Organization profile showcasing the CapSign ecosystem
github.com/capsign/docs
(PUBLIC)Source:
./docs/
directoryPurpose: GitBook documentation hosted at docs.capsign.com
github.com/capsign/.github-private
(PRIVATE)Source:
./.github-private/
directoryPurpose: Internal team workflows and automation
โ ๏ธ PRIVATE REPOSITORY - for team members only
๐ Repository Creation Steps
โ ๏ธ IMPORTANT: Follow this exact order to avoid CI/CD failures:
1. Create Empty Repositories on GitHub
Create these repositories on GitHub without initializing them (no README, .gitignore, or license):
github.com/capsign/infrastructure
(PUBLIC)
github.com/capsign/infrastructure
(PUBLIC)Description: Infrastructure as Code for blockchain deployment on AWS using Terraform and Kubernetes.
github.com/capsign/helm-charts
(PUBLIC)
github.com/capsign/helm-charts
(PUBLIC)Description: Kubernetes Helm charts for deploying blockchain nodes and monitoring infrastructure.
github.com/capsign/.github
(PUBLIC)
github.com/capsign/.github
(PUBLIC)Description: CapSign organization profile showcasing our open source blockchain infrastructure ecosystem.
github.com/capsign/docs
(PUBLIC)
github.com/capsign/docs
(PUBLIC)Description: Comprehensive GitBook documentation with guides, tutorials, and API references.
github.com/capsign/.github-private
(PRIVATE)
github.com/capsign/.github-private
(PRIVATE)Description: Internal team workflows, templates, and automation for the CapSign organization.
๐ Repository Creation Notes:
โ Do NOT initialize with README, .gitignore, or license
โ Set correct visibility (PUBLIC for first 4, PRIVATE for .github-private)
โ Use exact repository names as shown above
โ Enable Issues and Discussions for public repos
โ Restrict .github-private to team members only
2. Configure Secrets (BEFORE Pushing Code!)
โ ๏ธ CRITICAL: Set up all required secrets now using secrets configuration guide
If you push code before setting up secrets, all CI/CD workflows will fail!
3. Push Infrastructure Repository
cd infrastructure/
git init
git add .
git commit -m "feat: initial Terraform infrastructure for AWS EKS blockchain deployment"
git branch -M main
git remote add origin [email protected]:capsign/infrastructure.git
git push -u origin main
4. Push Helm Charts Repository
cd ../helm-charts/
git init
git add .
git commit -m "feat: initial Helm charts for blockchain infrastructure"
git branch -M main
git remote add origin [email protected]:capsign/helm-charts.git
git push -u origin main
5. Push Organization Profile Repository
mkdir capsign-github-profile
cd capsign-github-profile/
mkdir -p .github/profile/
cp ../capsign/.github/profile/README.md .github/profile/
git init
git add .
git commit -m "feat: initial organization profile"
git branch -M main
git remote add origin [email protected]:capsign/.github.git
git push -u origin main
6. Push Documentation Repository
cd ../docs/
git init
git add .
git commit -m "feat: initial GitBook documentation with comprehensive guides"
git branch -M main
git remote add origin [email protected]:capsign/docs.git
git push -u origin main
7. Push Private Team Workflows Repository
mkdir capsign-github-private
cd capsign-github-private/
cp -r ../capsign/.github-private/* .
git init
git add .
git commit -m "feat: initial private team workflows and templates"
git branch -M main
git remote add origin [email protected]:capsign/.github-private.git
git push -u origin main
โ ๏ธ Important: Set this repository to PRIVATE immediately after creation.
๐ Pre-Creation Checklist
Before creating the repositories, ensure:
Infrastructure Repository
Helm Charts Repository
Organization Profile
๐ง Post-Creation Setup
After creating repositories:
Enable GitHub Features
Branch Protection Rules
- Require pull request reviews before merging - Require status checks to pass before merging - Require branches to be up to date before merging - Include administrators
GitHub Discussions
Enable for both repositories
Create initial categories (General, Q&A, Ideas, etc.)
Security Features
Enable Dependabot alerts
Enable secret scanning
Enable code scanning (CodeQL)
Repository Settings
Add repository description
Add topics/tags for discoverability
Set up repository social preview image
โ
Verification Checklist
After setup is complete:
๐ Troubleshooting
Common Issues
AWS Authentication Failures
Error: could not retrieve caller identity
Solutions:
Verify
AWS_ROLE_ARN
is correct and role existsCheck trust policy allows GitHub Actions
Ensure OIDC provider thumbprint is current
Test with
aws sts get-caller-identity
locally
Terraform State Backend Issues
Error: Failed to configure the backend "s3"
Solutions:
Ensure S3 bucket exists and is accessible
Verify DynamoDB table exists for locking
Check bucket name in
backend.tf
matches secretConfirm AWS permissions include S3/DynamoDB access
Kubernetes Connection Problems
Error: couldn't get current server API group list
Solutions:
Verify
KUBECONFIG_DATA
is base64 encoded correctlyEnsure EKS cluster is running and accessible
Check cluster name and region match configuration
Update kubeconfig:
aws eks update-kubeconfig --region us-west-2 --name capsign-cluster
For more troubleshooting help, see our common issues guide.
Ready to make CapSign repositories live? Follow this guide step by step! ๐
Last updated
Was this helpful?