Skip to content

Conversation

@gildesmarais
Copy link
Member

Summary

  • rewrite the self-hosting page to assume a ready Docker host instead of duplicating the local install steps
  • link to production hardening, TLS, monitoring, and maintenance resources throughout the guide
  • encourage operators to list stable deployments on the community instance wiki page

Testing

  • not run (docs change only)

Codex Task

@gildesmarais gildesmarais changed the title Refocus self-hosting guide on production deployment feat: Refocus self-hosting guide on production deployment Nov 8, 2025
@gildesmarais gildesmarais changed the title feat: Refocus self-hosting guide on production deployment feat: refocus self-hosting guide on production deployment Nov 8, 2025
@gildesmarais
Copy link
Member Author

Closes #994

@gildesmarais gildesmarais requested a review from Copilot November 8, 2025 09:33
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR completely restructures the self-hosting documentation, replacing the beginner-friendly "Quick Start" approach with production-focused deployment guidance. The change shifts the target audience from community members exploring self-hosting to experienced administrators running production instances.

Key Changes:

  • Removed the simple 5-step Quick Start installation guide
  • Added production prerequisites section requiring VPS/Kubernetes experience
  • Expanded security, monitoring, and maintenance sections with detailed operational guidance
  • Restructured content to emphasize production hardening over quick experimentation

## Before You Begin

---
This guide assumes you already manage a Docker-capable host (VPS, home lab, or Kubernetes node) and are comfortable deploying containers. If you have not yet provisioned a server, complete that prerequisite before proceeding. Review the full [Deployment & Production guide](/web-application/how-to/deployment) for environment sizing, proxy patterns, and step-by-step production hardening.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

The "Before You Begin" section assumes users already have a Docker-capable host and are comfortable deploying containers, which may not align with the "get-involved" context. According to the coding guidelines, content should be written clearly for users who are not fully fluent in technology. This section creates a barrier to entry that contradicts the AIDA model principle of engaging readers.

Consider softening the prerequisites to be more inclusive, such as: "This guide is designed for users who want to run their own production instance. You'll need basic familiarity with Docker and access to a server (VPS, home lab, or cloud instance). If you're new to self-hosting, start with the Getting Started guide for a simpler local setup first."

Copilot generated this review using guidance from repository custom instructions.
3. Adjust the compose file to match your host (volumes, proxy service, watchtower, resource limits). The [deployment guide](/web-application/how-to/deployment) shows complete examples for Caddy, health-check protection, and automatic updates.
4. Start the stack with `docker compose up -d` and verify the application is reachable at your chosen domain or internal endpoint.

Need extra reliability? Integrate the instance with your existing reverse proxy, DNS, or platform tooling rather than running it ad hoc on a laptop. Treat it like any other production service.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

The phrase "running it ad hoc on a laptop" uses jargon ("ad hoc") that may not be clear to all readers. According to the coding guidelines, content should be written clearly for users who are not fully fluent in technology.

Consider simplifying to: "Need extra reliability? Integrate the instance with your existing reverse proxy, DNS, or platform tooling rather than running it temporarily on a laptop. Treat it like any other production service."

Copilot generated this review using guidance from repository custom instructions.
Comment on lines 10 to 27
## Before You Begin

---
This guide assumes you already manage a Docker-capable host (VPS, home lab, or Kubernetes node) and are comfortable deploying containers. If you have not yet provisioned a server, complete that prerequisite before proceeding. Review the full [Deployment & Production guide](/web-application/how-to/deployment) for environment sizing, proxy patterns, and step-by-step production hardening.

At a minimum, ensure:

- Docker Engine and Docker Compose Plugin are installed on the host.
- Ports 80/443 (or the ports used by your TLS terminator) are open to the Internet if you plan to serve other users.
- You can publish DNS for your chosen domain.

## Deployment Overview

1. Generate your `docker-compose.yml` and `config/feeds.yml` by following [Step 2 of the getting started guide](/web-application/getting-started/#step-2-create-the-configuration-file), then copy the resulting files into your deployment directory.
2. Create an `.env` file with production credentials and the values documented in the [environment reference](/web-application/reference/env-variables). Generate new secrets (`openssl rand -hex 32`) and avoid reusing the samples from local testing.
3. Adjust the compose file to match your host (volumes, proxy service, watchtower, resource limits). The [deployment guide](/web-application/how-to/deployment) shows complete examples for Caddy, health-check protection, and automatic updates.
4. Start the stack with `docker compose up -d` and verify the application is reachable at your chosen domain or internal endpoint.

Need extra reliability? Integrate the instance with your existing reverse proxy, DNS, or platform tooling rather than running it ad hoc on a laptop. Treat it like any other production service.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

The new content substantially increases technical complexity and adds barriers that conflict with the "get-involved" context. According to the coding guidelines, you should prevent adding "technical clutter" content and ensure the site navigation is assembled in a logical and user-friendly manner.

The original "Quick Start" section provided an accessible onboarding experience for community members wanting to self-host. The new version immediately requires VPS/home lab knowledge, Docker Compose Plugin understanding, and production-grade security concerns. This transformation makes the page less suitable for the "Get Involved" section, which should lower barriers to participation.

Consider either:

  1. Restoring the simple Quick Start for getting involved, and moving production-focused content to /web-application/how-to/production-deployment, or
  2. Adding a beginner-friendly "Try It First" section before diving into production prerequisites, directing users to the Getting Started guide for a simpler local installation.

Copilot generated this review using guidance from repository custom instructions.
Comment on lines 20 to 25
## Deployment Overview

1. Generate your `docker-compose.yml` and `config/feeds.yml` by following [Step 2 of the getting started guide](/web-application/getting-started/#step-2-create-the-configuration-file), then copy the resulting files into your deployment directory.
2. Create an `.env` file with production credentials and the values documented in the [environment reference](/web-application/reference/env-variables). Generate new secrets (`openssl rand -hex 32`) and avoid reusing the samples from local testing.
3. Adjust the compose file to match your host (volumes, proxy service, watchtower, resource limits). The [deployment guide](/web-application/how-to/deployment) shows complete examples for Caddy, health-check protection, and automatic updates.
4. Start the stack with `docker compose up -d` and verify the application is reachable at your chosen domain or internal endpoint.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

The heading "Deployment Overview" contradicts the page structure and AIDA principles. This page is titled "Self-Host Your Own Instance" in the "Get Involved" section, yet it immediately jumps to deployment specifics without engaging the reader or explaining the value proposition.

According to the coding guidelines, you should follow the AIDA model (Attention, Interest, Desire, Action) to ensure content is engaging. The original "Quick Start" section followed this pattern better by providing immediate action steps.

Consider restructuring to include:

  1. A compelling introduction explaining why self-hosting matters
  2. Clear pathways for different user levels (beginner local setup vs. production deployment)
  3. Action-oriented steps that build confidence rather than listing prerequisites

Copilot generated this review using guidance from repository custom instructions.
## Deployment Overview

1. Generate your `docker-compose.yml` and `config/feeds.yml` by following [Step 2 of the getting started guide](/web-application/getting-started/#step-2-create-the-configuration-file), then copy the resulting files into your deployment directory.
2. Create an `.env` file with production credentials and the values documented in the [environment reference](/web-application/reference/env-variables). Generate new secrets (`openssl rand -hex 32`) and avoid reusing the samples from local testing.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

The phrase "avoid reusing the samples from local testing" is negative framing and lacks clarity. According to the coding guidelines, content should use active voice and be clear and concise.

Consider positive, actionable language: "Generate new secrets (openssl rand -hex 32) specifically for production—never use example values from documentation or local testing."

Copilot generated this review using guidance from repository custom instructions.

## Deployment Overview

1. Generate your `docker-compose.yml` and `config/feeds.yml` by following [Step 2 of the getting started guide](/web-application/getting-started/#step-2-create-the-configuration-file), then copy the resulting files into your deployment directory.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

This instruction is overly technical and lacks user-friendly guidance. The phrase "Copy the reference... from the project repository to your deployment directory" assumes readers understand git workflows and deployment directory structures. According to the coding guidelines, content should be clear and understandable for users who are not fully fluent in technology.

Consider providing more explicit instructions: "Download the reference docker-compose.yml and config/feeds.yml files to a directory on your server where you'll run html2rss-web."

Copilot generated this review using guidance from repository custom instructions.
@gildesmarais gildesmarais requested a review from Copilot November 8, 2025 09:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@gildesmarais gildesmarais requested a review from Copilot November 8, 2025 10:04
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

- A server you control (a VPS, home lab, or cloud instance) with Docker support.
- Comfort running a few terminal commands and editing configuration files.

If that feels new, start with the [Getting Started guide](/web-application/getting-started/) for a friendly local install. It introduces the same concepts at a slower pace. When you're ready to go live, come back here and review the full [Deployment & Production guide](/web-application/how-to/deployment) for sizing tips, proxy examples, and hardening advice.
Copy link

Copilot AI Nov 8, 2025

Choose a reason for hiding this comment

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

Inconsistent URL formatting: the first link includes a trailing slash /web-application/getting-started/ while the second link omits it /web-application/how-to/deployment. For consistency and to avoid potential duplicate URL issues, either include or omit trailing slashes consistently throughout the document.

Copilot uses AI. Check for mistakes.
@gildesmarais gildesmarais merged commit 531e425 into main Nov 8, 2025
4 checks passed
@gildesmarais gildesmarais deleted the codex/refactor-self-hosting-documentation branch November 8, 2025 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants