diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ae4d09c2..608f6649 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -421,6 +421,11 @@ jobs: shell: bash run: npx changelogen --output CHANGELOG.md + # Sole publish target. This repo is public, so its own Releases page both + # satisfies AGPL source availability (via the owncord-src snapshot below) + # and serves as the publicly-readable feed that deployed servers and + # clients poll for updates. The former mirror step to a separate public + # releases repo existed only to work around this repo being private. - name: Create GitHub Release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -430,29 +435,3 @@ jobs: gh release create "${{ github.ref_name }}" \ --notes-file CHANGELOG.md \ "${assets[@]}" - - # The public releases repo is what deployed servers and clients poll for - # updates, and it carries the AGPL source snapshot while the source repo - # is private. Publishing there must never be skipped silently once the - # source repo is private. - - name: Publish to public releases repo - shell: bash - env: - RELEASES_TOKEN: ${{ secrets.RELEASES_REPO_TOKEN }} - SOURCE_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - if [ -z "$RELEASES_TOKEN" ]; then - PRIVATE=$(GH_TOKEN="$SOURCE_REPO_TOKEN" gh api "repos/$GITHUB_REPOSITORY" --jq .private) - if [ "$PRIVATE" = "true" ]; then - echo "::error::Source repo is private and RELEASES_REPO_TOKEN is unset — binaries would ship with no public source or update feed (AGPL violation, broken updater)." - exit 1 - fi - echo "::warning::RELEASES_REPO_TOKEN not set — skipping publish to J3vb/OwnCord-releases." - exit 0 - fi - mapfile -t assets < <(find windows linux -type f) - assets+=(checksums.sha256 owncord-src-*.tar.gz) - GH_TOKEN="$RELEASES_TOKEN" gh release create "${{ github.ref_name }}" \ - --repo J3vb/OwnCord-releases \ - --notes-file CHANGELOG.md \ - "${assets[@]}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dc79a1b..64364e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,9 @@ behavioural changes operators must know about. > **Project reset note:** OwnCord has re-entered alpha. The `v1.0.0` release is > superseded; versioning continues forward as `v1.1.0-alpha.N` so deployed -> servers and clients keep receiving updates. Releases are published to the -> public [`OwnCord-releases`](https://github.com/J3vb/OwnCord-releases) -> repository, including a full source snapshot with every release. +> servers and clients keep receiving updates. Releases are published to this +> repository's [Releases](https://github.com/J3vb/OwnCord/releases) page, +> including a full source snapshot with every release. ### Phase B — Acceleration diff --git a/README.md b/README.md index 0d170235..dda00687 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![CI](https://github.com/J3vb/OwnCord/actions/workflows/ci.yml/badge.svg)](https://github.com/J3vb/OwnCord/actions/workflows/ci.yml) -[![Release](https://img.shields.io/github/v/release/J3vb/OwnCord-releases?include_prereleases&label=release)](https://github.com/J3vb/OwnCord-releases/releases/latest) +[![Release](https://img.shields.io/github/v/release/J3vb/OwnCord?include_prereleases&label=release)](https://github.com/J3vb/OwnCord/releases/latest) ![Status](https://img.shields.io/badge/status-alpha-orange) -![Go](https://img.shields.io/badge/go-1.25%2B-00ADD8?logo=go&logoColor=white) +![Go](https://img.shields.io/badge/go-1.26%2B-00ADD8?logo=go&logoColor=white) ![Tauri](https://img.shields.io/badge/tauri-v2-24C8DB?logo=tauri&logoColor=white) ![Platforms](https://img.shields.io/badge/platforms-Windows%20x64%20%7C%20Linux%20x64%20%7C%20Linux%20ARM64-informational) [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue)](LICENSE) @@ -65,7 +65,7 @@ It includes real-time messaging, voice/video via LiveKit, file sharing, and a we ### Option A: Prebuilt binaries -1. Download assets from [OwnCord-releases](https://github.com/J3vb/OwnCord-releases/releases) (binaries, checksums, signatures, and a full source snapshot per release). +1. Download assets from [Releases](https://github.com/J3vb/OwnCord/releases) (binaries, checksums, signatures, and a full source snapshot per release). 2. Run the server binary: - Windows: `chatserver.exe` - Linux: `./chatserver` @@ -132,7 +132,7 @@ Two main components: ### Prerequisites -- Go 1.25+ +- Go 1.26+ - Node.js 20+ - Rust stable (client builds) diff --git a/SECURITY.md b/SECURITY.md index a7128eda..099108c7 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -7,7 +7,7 @@ There are no backports. | Version | Supported | | ------- | --------- | -| Latest release (see [OwnCord-releases](https://github.com/J3vb/OwnCord-releases/releases)) | Yes | +| Latest release (see [Releases](https://github.com/J3vb/OwnCord/releases)) | Yes | | Anything older | No | ## Reporting a vulnerability @@ -15,9 +15,9 @@ There are no backports. **Do not open a public issue for security bugs.** Report vulnerabilities privately via GitHub Security Advisories on the -[OwnCord-releases](https://github.com/J3vb/OwnCord-releases/security/advisories/new) -repository ("Report a vulnerability"). This channel works even while the -source repository is private. +[OwnCord](https://github.com/J3vb/OwnCord/security/advisories/new) +repository ("Report a vulnerability"). Advisories stay private until +published, so this channel is safe even though the repository is public. Please include: diff --git a/Server/config/config.go b/Server/config/config.go index 66af6b05..8a1419fe 100644 --- a/Server/config/config.go +++ b/Server/config/config.go @@ -230,7 +230,7 @@ func defaults() Config { }, GitHub: GitHubConfig{ Owner: "J3vb", - Repo: "OwnCord-releases", + Repo: "OwnCord", }, EventPersistence: EventPersistenceConfig{ Enabled: true, diff --git a/docs/architecture/system-overview.md b/docs/architecture/system-overview.md index c2297f21..e90be25c 100644 --- a/docs/architecture/system-overview.md +++ b/docs/architecture/system-overview.md @@ -31,7 +31,7 @@ flowchart LR end LK["LiveKit server
(managed subprocess
or external)"] - REL["OwnCord-releases
(GitHub, minisign-signed)"] + REL["OwnCord releases
(GitHub, minisign-signed)"] WV -->|"HTTPS REST
⚠ accepts any cert
(no pinning)"| RTR WSP -->|"WSS, fingerprint-pinned"| HUB diff --git a/docs/server-configuration.md b/docs/server-configuration.md index b8369bbc..faeff370 100644 --- a/docs/server-configuration.md +++ b/docs/server-configuration.md @@ -74,7 +74,7 @@ For LiveKit options OwnCord does not model, you can take ownership of the auto-s |-----|------|---------|-------------| | `github.token` | string | `""` | Optional GitHub API token for higher rate limits on update checks (5000 req/hr vs 60) | | `github.owner` | string | `"J3vb"` | Owner of the GitHub repository server and client updates are fetched from | -| `github.repo` | string | `"OwnCord-releases"` | Public releases repository. Must stay publicly readable — both the server self-update and the client auto-update chain fetch release assets from it | +| `github.repo` | string | `"OwnCord"` | Repository whose releases carry update assets. Must stay publicly readable — both the server self-update and the client auto-update chain fetch release assets from it | ### Event Persistence (`event_persistence`) @@ -208,7 +208,7 @@ voice: github: token: "" # optional GitHub PAT for update check rate limits owner: "J3vb" # update source repo owner - repo: "OwnCord-releases" # public releases repo (binaries + source snapshots) + repo: "OwnCord" # repo holding release assets (binaries + source snapshots) # Event persistence (tiered reconnect replay) event_persistence: