feat: add community infrastructure and update server setup

- releases/manifest.json: Seed release manifest for update server
- update.rs: Make UPDATE_MANIFEST_URL configurable via ARCHIPELAGO_UPDATE_URL env var
- CONTRIBUTING.md: Comprehensive contribution guidelines covering code style,
  PR process, testing, security disclosure, and app submission
- .github/ISSUE_TEMPLATE/: Bug report, feature request, and app submission
  issue templates with structured forms
- .github/pull_request_template.md: PR template with checklist

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-11 10:57:33 +00:00
parent 112b15b4ea
commit 47c783ceac
8 changed files with 860 additions and 5 deletions

View File

@@ -0,0 +1,78 @@
name: App Submission
description: Submit an app for the Archipelago marketplace
title: "[App]: "
labels: ["app-submission"]
body:
- type: input
id: app_name
attributes:
label: App Name
placeholder: My Bitcoin App
validations:
required: true
- type: input
id: docker_image
attributes:
label: Container Image
description: Full image reference with tag (no :latest)
placeholder: "ghcr.io/org/app:1.2.3"
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: What does this app do?
validations:
required: true
- type: input
id: homepage
attributes:
label: Homepage / Repository
placeholder: "https://github.com/..."
- type: dropdown
id: category
attributes:
label: Category
options:
- Bitcoin
- Lightning
- Privacy
- Storage
- Communication
- Development
- Other
validations:
required: true
- type: checkboxes
id: requirements
attributes:
label: App Requirements Met
options:
- label: Runs as non-root user (UID > 1000)
required: true
- label: No `latest` tag — pinned version
required: true
- label: "Supports x86_64"
required: true
- label: "Supports ARM64"
- label: Tested on Archipelago hardware
required: true
- type: textarea
id: ports
attributes:
label: Required Ports
description: List ports the app needs exposed
placeholder: "8080 (web UI), 9735 (Lightning)"
- type: textarea
id: dependencies
attributes:
label: Dependencies
description: Does this app require other apps (e.g., Bitcoin, LND)?

81
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: Bug Report
description: Report a bug in Archipelago
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thank you for reporting a bug. Please fill out the sections below.
- type: textarea
id: description
attributes:
label: Description
description: A clear description of the bug.
placeholder: What happened?
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: Minimal steps to reproduce the issue.
placeholder: |
1. Go to '...'
2. Click on '...'
3. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What should have happened?
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened?
validations:
required: true
- type: input
id: version
attributes:
label: Archipelago Version
description: Check Settings page or run `archipelago --version`
placeholder: "0.1.0"
validations:
required: true
- type: dropdown
id: hardware
attributes:
label: Hardware
options:
- x86_64 (Intel/AMD)
- ARM64 (Raspberry Pi 5)
- ARM64 (Other)
- Other
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant Logs
description: |
Run `journalctl -u archipelago --since "1 hour ago"` and paste relevant output.
render: shell
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots.

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Security Vulnerability
url: mailto:security@archipelago-os.org
about: Do NOT open public issues for security vulnerabilities. Email us directly.

View File

@@ -0,0 +1,44 @@
name: Feature Request
description: Suggest a new feature or improvement
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: What problem does this solve?
placeholder: I'm always frustrated when...
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: How should this work?
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: What other approaches did you consider?
- type: dropdown
id: area
attributes:
label: Area
options:
- Web UI
- Backend / API
- App Management
- Networking
- Security
- Web5 / Identity
- ISO / Installation
- Documentation
- Other
validations:
required: true

16
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,16 @@
## Summary
<!-- Brief description of what this PR does -->
## Changes
-
## Checklist
- [ ] TypeScript type-check passes (`npm run type-check`)
- [ ] Frontend builds (`npm run build`)
- [ ] Tests pass (`npm test`)
- [ ] Rust clippy clean (if backend changes)
- [ ] No new compiler warnings
- [ ] Tested on live server