diff --git a/docs/deploying/_meta.json b/docs/deploying/_meta.json index 6aaff1792..838f397de 100644 --- a/docs/deploying/_meta.json +++ b/docs/deploying/_meta.json @@ -16,8 +16,8 @@ }, { "type": "file", - "name": "fedora", - "label": "Fedora" + "name": "rpm", + "label": "RPM" }, { "type": "file", diff --git a/docs/deploying/fedora.mdx b/docs/deploying/fedora.mdx deleted file mode 100644 index d464e6599..000000000 --- a/docs/deploying/fedora.mdx +++ /dev/null @@ -1,189 +0,0 @@ -# RPM Installation Guide - -Continuwuity is available as RPM packages for Fedora and compatible distributions. -We do not currently have infrastructure to build RPMs for RHEL and compatible distributions, but this is a work in progress. - -The RPM packaging files are maintained in the `fedora/` directory: -- `continuwuity.spec.rpkg` - RPM spec file using rpkg macros for building from git -- `continuwuity.service` - Systemd service file for the server -- `RPM-GPG-KEY-continuwuity.asc` - GPG public key for verifying signed packages - -RPM packages built by CI are signed with our GPG key (RSA, ID: `6595 E8DB 9191 D39A 46D6 A514 4BA7 F590 DF0B AA1D`). # spellchecker:disable-line - -```bash -# Import the signing key -sudo rpm --import https://forgejo.ellis.link/api/packages/continuwuation/rpm/repository.key - -# Verify a downloaded package -rpm --checksig continuwuity-*.rpm -``` - -## Installation methods - -**Stable releases** (recommended) - -```bash -# Add the repository and install -sudo dnf config-manager addrepo --from-repofile=https://forgejo.ellis.link/api/packages/continuwuation/rpm/stable.repo -sudo dnf install continuwuity -``` - -**Development builds** from main branch - -```bash -# Add the dev repository and install -sudo dnf config-manager addrepo --from-repofile=https://forgejo.ellis.link/api/packages/continuwuation/rpm/dev.repo -sudo dnf install continuwuity -``` - -**Feature branch builds** (example: `tom/new-feature`) - -```bash -# Branch names are sanitized (slashes become hyphens, lowercase only) -sudo dnf config-manager addrepo --from-repofile=https://forgejo.ellis.link/api/packages/continuwuation/rpm/tom-new-feature.repo -sudo dnf install continuwuity -``` - -**Manual repository configuration** (alternative method) - -```bash -cat << 'EOF' | sudo tee /etc/yum.repos.d/continuwuity.repo -[continuwuity] -name=Continuwuity - Matrix homeserver -baseurl=https://forgejo.ellis.link/api/packages/continuwuation/rpm/stable -enabled=1 -gpgcheck=1 -gpgkey=https://forgejo.ellis.link/api/packages/continuwuation/rpm/repository.key -EOF - -sudo dnf install continuwuity -``` - -## Package management - -**Automatic updates** with DNF Automatic - -```bash -# Install and configure -sudo dnf install dnf-automatic -sudo nano /etc/dnf/automatic.conf # Set: apply_updates = yes -sudo systemctl enable --now dnf-automatic.timer -``` - -**Manual updates** - -```bash -# Check for updates -sudo dnf check-update continuwuity - -# Update to latest version -sudo dnf update continuwuity -``` - -**Switching channels** (stable/dev/feature branches) - -```bash -# List enabled repositories -dnf repolist | grep continuwuation - -# Disable current repository -sudo dnf config-manager --set-disabled continuwuation-stable # or -dev, or branch name - -# Enable desired repository -sudo dnf config-manager --set-enabled continuwuation-dev # or -stable, or branch name - -# Update to the new channel's version -sudo dnf update continuwuity -``` - -**Verifying installation** - -```bash -# Check installed version -rpm -q continuwuity - -# View package information -rpm -qi continuwuity - -# List installed files -rpm -ql continuwuity - -# Verify package integrity -rpm -V continuwuity -``` - -## Service management and removal - -**Systemd service commands** - -```bash -# Start the service -sudo systemctl start conduwuit - -# Enable on boot -sudo systemctl enable conduwuit - -# Check status -sudo systemctl status conduwuit - -# View logs -sudo journalctl -u conduwuit -f -``` - -**Uninstallation** - -```bash -# Stop and disable the service -sudo systemctl stop conduwuit -sudo systemctl disable conduwuit - -# Remove the package -sudo dnf remove continuwuity - -# Remove the repository (optional) -sudo rm /etc/yum.repos.d/continuwuation-*.repo -``` - -## Troubleshooting - -**GPG key errors**: Temporarily disable GPG checking - -```bash -sudo dnf --nogpgcheck install continuwuity -``` - -**Repository metadata issues**: Clear and rebuild cache - -```bash -sudo dnf clean all -sudo dnf makecache -``` - -**Finding specific versions** - -```bash -# List all available versions -dnf --showduplicates list continuwuity - -# Install a specific version -sudo dnf install continuwuity- -``` - -## Building locally - -Build the RPM locally using rpkg: - -```bash -# Install dependencies -sudo dnf install rpkg rpm-build cargo-rpm-macros systemd-rpm-macros - -# Clone the repository -git clone https://forgejo.ellis.link/continuwuation/continuwuity.git -cd continuwuity - -# Build SRPM -rpkg srpm - -# Build RPM -rpmbuild --rebuild *.src.rpm -``` diff --git a/docs/deploying/rpm.mdx b/docs/deploying/rpm.mdx new file mode 100644 index 000000000..bf99487a9 --- /dev/null +++ b/docs/deploying/rpm.mdx @@ -0,0 +1,165 @@ +import { Tab, Tabs} from '@rspress/core/theme'; + +# RPM Installation Guide + +## Overview + +Continuwuity versions v0.5.10+ are available as RPM packages for the following distributions: + + + +Available for upstream-supported Fedora versions (including compatible distributions, such as Ultramarine Linux) and Rawhide through Terra. + + +Available for Enterprise Linux (RHEL, AlmaLinux, Rocky Linux, etc.) **10+** through Terra. + +:::warning Oracle Linux support +Due to upstream limitations, Terra is only usable on Oracle Linux if you use [upstream EPEL](https://docs.fedoraproject.org/en-US/epel/getting-started/) +rather than Oracle's rebuilds of EPEL. Oracle tends to lag behind on new EL versions, both major and minor—for example, as of the time of writing, 10.2 has been +available for over a month through other ELs, but Oracle has not yet released corresponding updates—so you may encounter further compatibility issues with EPEL. +**For this reason, it is recommended that you use another EL distribution if at all possible.** +::: + + + +Available for openSUSE Tumbleweed and [supported Leap versions](https://en.opensuse.org/Lifetime) through the openSUSE Build Service. + + + +## Installation methods + +### Stable releases (recommended) + + + +1. Follow [Terra's directions for adding the Terra repo on your distribution](https://docs.terrapkg.com/usage/installing/#fedora-and-derivatives). +2. Install the `continuwuity` package. + + +1. Follow [Terra's directions for adding the Terra repo on your distribution](https://docs.terrapkg.com/usage/installing/#enterprise-linux). Be sure to acquire/enable relevant dependencies! +2. Install the `continuwuity` package. + + +openSUSE packages are available through an openSUSE Build Service project namespace provided by a community member. + +1. Navigate to [this page](https://software.opensuse.org/download.html?project=home%3Ajulian45&package=continuwuity). +2. Click on the "Add repository and install manually" text to expand install instructions. +3. Follow the provided instructions for your version of openSUSE. + + + +### Nightly releases +Nightly versions are built from the latest commit on the `main` branch every 24 hours. + + + +1. Follow [Terra's directions for adding the Terra repo on your distribution](https://docs.terrapkg.com/usage/installing/#fedora-and-derivatives). +2. Install the `continuwuity-nightly` package. + + +1. Follow [Terra's directions for adding the Terra repo on your distribution](https://docs.terrapkg.com/usage/installing/#enterprise-linux). Be sure to acquire/enable relevant dependencies! +2. Install the `continuwuity-nightly` package. + + +Nightly packages for openSUSE are **not currently available**. + +If there is an ongoing need for these, please ask in `#continuwuity:continuwuity.org` or [open an issue on Forgejo](https://forgejo.ellis.link/continuwuation/continuwuity/issues/new). +In the meantime, you may follow the [generic deployment instructions](deployment/generic). + + + +## Service management and removal + +**Systemd service commands** + +```bash +# Start the service +sudo systemctl start conduwuit + +# Enable on boot +sudo systemctl enable conduwuit + +# Check status +sudo systemctl status conduwuit + +# View logs +sudo journalctl -u conduwuit -f +``` + +**Uninstallation** + +```bash +# Stop and disable the service +sudo systemctl stop conduwuit +sudo systemctl disable conduwuit + +# Remove the package +sudo dnf remove continuwuity # replace `dnf` with `zypper` on openSUSE +``` + +## Troubleshooting + +**GPG key errors**: Temporarily disable GPG checking + +```bash +sudo dnf --nogpgcheck install continuwuity +``` + +**Repository metadata issues**: Clear and rebuild cache + +```bash +sudo dnf clean all +sudo dnf makecache +``` + +**Finding specific versions** + +```bash +# List all available versions +dnf --showduplicates list continuwuity + +# Install a specific version +sudo dnf install continuwuity- +``` + +## Building locally + + + +:::details Directly from Continuwuity source + +Build the RPM locally using rpkg: +```bash +# Install dependencies +sudo dnf install rpkg rpm-build cargo-rpm-macros systemd-rpm-macros + +# Clone the repository +git clone https://forgejo.ellis.link/continuwuation/continuwuity.git +cd continuwuity + +# Build SRPM +rpkg srpm + +# Build RPM +rpmbuild --rebuild *.src.rpm +``` +::: + +Or, use Terra: +1. Follow [Terra's prep directions](https://docs.terrapkg.com/contributing/getting-started/#preparation) to bootstrap your development environment. +2. `git clone` the [Terra sources repo](https://github.com/terrapkg/packages). +3. Follow [Terra's build instructions](https://docs.terrapkg.com/contributing/getting-started/#building), using the path `anda/misc/continuwuity/nightly/pkg`. If desiring a build of the latest stable version, replace `nightly` with `stable` instead. + + +1. Follow [Terra's prep directions](https://docs.terrapkg.com/contributing/getting-started/#preparation) to bootstrap your development environment. +2. `git clone` the [Terra sources repo](https://github.com/terrapkg/packages). +3. Follow [Terra's build instructions](https://docs.terrapkg.com/contributing/getting-started/#building), using the path `anda/misc/continuwuity/nightly/pkg`. If desiring a build of the latest stable version, replace `nightly` with `stable` instead. + + +1. Navigate to [this package's location in the openSUSE Build Service web UI](https://build.opensuse.org/package/show/home:julian45/continuwuity). +2. Click on the "Checkout package" text and follow the instructions to acquire a local copy of the packaging source. +3. In the `_service` file, adjust the revision within the `` tag (approx. line 6) to your desired git repo revision. +4. Run `osc service ra` to update your copy of the Continuwuity sources and vendored packages. +5. Run `osc build` to locally build an openSUSE-ready RPM. + +