Skip to content

docs: add provider-agnostic requirements to DEPLOYMENT.md - #35

Open
Digitalenergyllc wants to merge 4 commits into
solana-foundation:mainfrom
Digitalenergyllc:fix/issue-23-deployment-providers
Open

docs: add provider-agnostic requirements to DEPLOYMENT.md#35
Digitalenergyllc wants to merge 4 commits into
solana-foundation:mainfrom
Digitalenergyllc:fix/issue-23-deployment-providers

Conversation

@Digitalenergyllc

@Digitalenergyllc Digitalenergyllc commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

Closes #23

Summary

DEPLOYMENT.md only covered AWS-based deployment. Operators using other providers (Leaseweb, OVH, Hetzner, bare metal) had no guidance on minimum requirements or alternative setup steps.

Changes

  • Added General Requirements section with minimum hardware specs table
  • Added Non-AWS Deployment Notes covering SSL/TLS, DNS, firewall, and process management for non-AWS environments
  • Placed above existing AWS-specific instructions so operators can assess compatibility before diving into provider-specific steps
  • Follow-up commits from review: added port 80 to the firewall guidance (Let's Encrypt HTTP-01) and reconciled the storage minimum to 40 GB to match the AWS section

Closes solana-foundation#23

DEPLOYMENT.md only covered AWS. Added general hardware requirements
and notes for operators deploying on other providers or bare metal.
@vercel

vercel Bot commented Apr 6, 2026

Copy link
Copy Markdown

@Digitalenergyllc is attempting to deploy a commit to the Solana Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@greptile-apps

greptile-apps Bot commented Jul 12, 2026

Copy link
Copy Markdown

Greptile Summary

This PR extends ncn/verifier-service/DEPLOYMENT.md to cover provider-agnostic deployment by adding a General Requirements table (CPU/RAM/storage/network/OS minimums) and a Non-AWS Deployment Notes section (SSL/TLS, DNS, firewall, process management). The new content is placed above the existing AWS-specific steps so operators on bare-metal or alternative VPS providers can self-qualify before reading provider-specific instructions.

  • General Requirements table reconciles the storage minimum at 40 GB (matching the AWS gp3 step) with an explicit note that bare-metal operators should provision more headroom, resolving the conflict flagged in earlier review rounds.
  • Non-AWS Deployment Notes now correctly lists port 80 as required for Let's Encrypt HTTP-01 challenges, addressing the prior port omission comment.
  • Bare metal claim notes only Leaseweb was tested, while the PR description mentions OVH, Hetzner, and bare metal — the documentation is more conservative than the description implies.

Confidence Score: 5/5

Documentation-only change with no code or configuration modifications; safe to merge.

The PR adds a requirements table and non-AWS deployment notes to a Markdown file. Both issues flagged in earlier review rounds (storage minimum conflict and missing port 80) have been resolved in this revision. The only remaining nit is a minor accuracy gap in the provider testing claim, which does not affect correctness or operator safety.

No files require special attention; the single changed file is documentation only.

Important Files Changed

Filename Overview
ncn/verifier-service/DEPLOYMENT.md Documentation-only addition of provider-agnostic requirements table and non-AWS deployment notes; no code or config changes; previously flagged storage conflict and missing port 80 were addressed in this revision.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Operator reads DEPLOYMENT.md] --> B{Meet General Requirements?\nCPU / RAM / Storage / Network / OS}
    B -- No --> C[Upgrade hardware or choose a different provider]
    B -- Yes --> D{Deployment provider?}
    D -- AWS EC2 --> E[Follow steps 1–9\nLaunch EC2, Security Group,\nElastic IP, Docker setup]
    D -- Non-AWS\nLeaseweb / OVH / Hetzner / Bare Metal --> F[Follow Non-AWS Notes\nSSL/TLS via nginx + Let's Encrypt\nDNS A record\nFirewall ports 80 & 443\nSystemd unit with Restart=on-failure]
    F --> G[Run setup.sh\nDocker container start]
    E --> G
    G --> H[Verify: /healthz & /version\nDocker ps & logs]
    H --> I[Optional: Cloudflare proxy\n+ rate limiting]
    I --> J[Start DB cleanup cron]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Operator reads DEPLOYMENT.md] --> B{Meet General Requirements?\nCPU / RAM / Storage / Network / OS}
    B -- No --> C[Upgrade hardware or choose a different provider]
    B -- Yes --> D{Deployment provider?}
    D -- AWS EC2 --> E[Follow steps 1–9\nLaunch EC2, Security Group,\nElastic IP, Docker setup]
    D -- Non-AWS\nLeaseweb / OVH / Hetzner / Bare Metal --> F[Follow Non-AWS Notes\nSSL/TLS via nginx + Let's Encrypt\nDNS A record\nFirewall ports 80 & 443\nSystemd unit with Restart=on-failure]
    F --> G[Run setup.sh\nDocker container start]
    E --> G
    G --> H[Verify: /healthz & /version\nDocker ps & logs]
    H --> I[Optional: Cloudflare proxy\n+ rate limiting]
    I --> J[Start DB cleanup cron]
Loading

Reviews (2): Last reviewed commit: "docs: reconcile storage minimum with AWS..." | Re-trigger Greptile

| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8 GB |
| Storage | 100 GB SSD | 200 GB NVMe |
| Network | 100 Mbps | 1 Gbps |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Storage minimum conflicts with AWS guide

The new table lists 100 GB SSD as the minimum, but the existing AWS section (step 1) recommends "at least 40 GB" for the gp3 volume. An operator following both sections will see contradictory requirements and may either over-provision or—if they trust the AWS-specific number—end up below what the general spec now calls the floor. One of the two values should be reconciled, or a note should clarify that the 40 GB figure in the AWS section is intentionally lower (e.g., sufficient for AWS with elastic storage expansion, while bare-metal operators should provision 100 GB upfront).

Comment thread ncn/verifier-service/DEPLOYMENT.md Outdated
Digitalenergyllc and others added 2 commits July 12, 2026 04:37
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: DEPLOYMENT.md is AWS-specific

1 participant