diff --git a/.forgejo/workflows/build-debian.yml b/.forgejo/workflows/build-debian.yml index d94b282e..bfad4e07 100644 --- a/.forgejo/workflows/build-debian.yml +++ b/.forgejo/workflows/build-debian.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Get Debian version - id: debian_version + id: debian-version run: | VERSION=$(cat /etc/debian_version) DISTRIBUTION=$(lsb_release -sc 2>/dev/null) @@ -43,9 +43,9 @@ jobs: path: | ~/.cargo/registry ~/.cargo/git - key: cargo-debian${{ steps.debian_version.outputs.version }}-${{ hashFiles('**/Cargo.lock') }} + key: cargo-debian${{ steps.debian-version.outputs.version }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - cargo-debian${{ steps.debian_version.outputs.version }}- + cargo-debian${{ steps.debian-version.outputs.version }}- - name: Setup sccache uses: https://git.tomfos.tr/tom/sccache-action@v1 @@ -72,18 +72,21 @@ jobs: # VERSION is the package version, COMPONENT is used in # apt's repository config like a git repo branch if [[ "${{ forge.ref }}" == "refs/tags/"* ]]; then + # Use the "stable" component for tagged releases COMPONENT="stable" VERSION=$BASE_VERSION else + # Use the "dev" component for development builds SHA=$(echo "${{ forge.sha }}" | cut -c1-7) DATE=$(date +%Y%m%d) if [ "${{ forge.ref_name }}" = "main" ]; then COMPONENT="dev" else - # Use sanitized ref name for the component - COMPONENT=$(echo "${{ forge.ref_name }}" | sed 's/[^a-zA-Z0-9.+]/~/g' | tr '[:upper:]' '[:lower:]' | cut -c1-30) + # Use the sanitized ref name as the component for feature branches + COMPONENT="dev-$(echo '${{ forge.ref_name }}' | sed 's/[^a-zA-Z0-9.+]/-/g' | tr '[:upper:]' '[:lower:]' | cut -c1-30)" fi - VERSION="$BASE_VERSION~git$DATE.$SHA-$COMPONENT" + CLEAN_COMPONENT=$(echo $COMPONENT | sed 's/[^a-zA-Z0-9.+]/~/g') + VERSION="$BASE_VERSION~git$DATE.$SHA-$CLEAN_COMPONENT" fi echo "component=$COMPONENT" >> $GITHUB_OUTPUT echo "version=$VERSION" >> $GITHUB_OUTPUT @@ -142,7 +145,7 @@ jobs: if: ${{ forge.event_name == 'push' || forge.event_name == 'workflow_dispatch' }} run: | OWNER="continuwuation" - DISTRIBUTION=${{ steps.debian_version.outputs.distribution }} + DISTRIBUTION=${{ steps.debian-version.outputs.distribution }} COMPONENT=${{ steps.package-meta.outputs.component }} DEB=${{ steps.cargo-deb.outputs.path }} diff --git a/pkg/debian/README.md b/pkg/debian/README.md index b605b198..dc174e5b 100644 --- a/pkg/debian/README.md +++ b/pkg/debian/README.md @@ -1,12 +1,26 @@ # Continuwuity for Debian -This document provides information about downloading and deploying the Debian package. You can also use this guide for other `apt`-based distributions such as Ubuntu. +This document provides information about downloading and deploying the Debian package. You can also use this guide for other deb-based distributions such as Ubuntu. ### Installation -See the [generic deployment guide](../deploying/generic.md) for additional information about using the Debian package. +To add the Continuwuation apt repository: +```bash +# Import the Continuwuation signing key +sudo curl https://forgejo.ellis.link/api/packages/continuwuation/debian/repository.key -o /etc/apt/keyrings/forgejo-continuwuation.asc +# Add a new apt source list pointing to the repository +echo "deb [signed-by=/etc/apt/keyrings/forgejo-continuwuation.asc] https://forgejo.ellis.link/api/packages/continuwuation/debian $(lsb_release -sc) stable" | sudo tee -a /etc/apt/sources.list.d/continuwuation.list +# Update remote package lists +sudo apt update +``` -No `apt` repository is currently available. This feature is in development. +To install continuwuity: +```bash +sudo apt install continuwuity +``` +The `continuwuity` package conflicts with the old `conduwuit` package and will remove it automatically when installed. + +See the [generic deployment guide](../deploying/generic.md) for additional information about using the Debian package. ### Configuration @@ -16,7 +30,7 @@ You can customize additional settings by uncommenting and modifying the configur ### Running -The package uses the [`conduwuit.service`](../configuration/examples.md#example-systemd-unit-file) systemd unit file to start and stop Continuwuity. The binary installs at `/usr/sbin/conduwuit`. +The package uses the [`conduwuit.service`](../configuration/examples.md#example-systemd-unit-file) systemd unit file to start and stop Continuwuity. The binary installs at `/usr/bin/conduwuit`. By default, this package assumes that Continuwuity runs behind a reverse proxy. The default configuration options apply (listening on `localhost` and TCP port `6167`). Matrix federation requires a valid domain name and TLS. To federate properly, you must set up TLS certificates and certificate renewal.