Skip to content

Rework Caddy guide: dual transports, IP certs, beginner-friendly flow - #11

Open
angelodlfrtr wants to merge 1 commit into
OutlineFoundation:mainfrom
angelodlfrtr:docs/ws-tutorial
Open

Rework Caddy guide: dual transports, IP certs, beginner-friendly flow#11
angelodlfrtr wants to merge 1 commit into
OutlineFoundation:mainfrom
angelodlfrtr:docs/ws-tutorial

Conversation

@angelodlfrtr

Copy link
Copy Markdown

Replace the "HTTPS with Caddy" page with a full deployment tutorial (now caddy.mdx) built on the outlinecaddy module from tunnel-server:

  • Serve direct Shadowsocks TCP/UDP and Shadowsocks-over-WebSockets from one Caddy config with shared access keys
  • Support Let's Encrypt IP certificates (shortlived ACME profile) as an alternative to domain certificates, via tabbed setup options
  • Build with the bundled cmd/caddy main package (go install) instead of xcaddy, which is kept as a collapsed alternative
  • Generate secrets into ~/outline.env so configs and access keys are produced by copy-paste heredocs with no manual placeholder editing
  • Add firewall commands (ufw/firewalld), per-step checkpoints with expected output, a troubleshooting section, and an architecture SVG
  • Run Caddy as a systemd service under a dedicated user
  • Drop the stale caddy.md translations so locales fall back to the up-to-date English page

@angelodlfrtr
angelodlfrtr marked this pull request as ready for review September 4, 2026 14:29
@greptile-apps

greptile-apps Bot commented Sep 4, 2026

Copy link
Copy Markdown

Greptile Summary

The PR replaces the former Caddy overview with an end-to-end deployment tutorial for direct Shadowsocks and Shadowsocks-over-WebSockets, supporting either domain or IP certificates.

  • Builds the bundled Caddy entry point with outlinecaddy.
  • Generates aligned server and client configuration for TCP, UDP, and WebSocket paths.
  • Adds firewall, systemd, validation, troubleshooting, and access-key instructions.
  • Installs the required OpenSSL dependency and restricts credential-bearing environment and Caddy configuration files to mode 0600.
  • Removes stale translations and marks the rewritten page as English-only pending re-export.

Confidence Score: 5/5

The PR appears safe to merge; the latest changes fully address both previous findings without introducing a new actionable defect.

The OpenSSL dependency is now installed for every documented distribution family, and both credential-bearing files are assigned mode 0600 before their secrets are written. The previous threads were manually resolved after these complete fixes.

Important Files Changed

Filename Overview
docs/vpn/advanced/caddy.mdx Replaces the previous overview with a complete dual-transport Caddy deployment guide and now securely creates credential-bearing configuration files with all required dependencies.
scripts/verify_translations.py Marks the rewritten Caddy guide as English-only so removal of stale locale copies does not fail translation verification.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    Client[Outline Client] --> Choice{Selected access key}
    Choice -->|Direct TCP and UDP| Direct[Caddy layer4 listener]
    Choice -->|WSS over TLS| HTTPS[Caddy HTTPS listener]
    HTTPS --> WS[WebSocket stream or packet handler]
    Direct --> Outline[Shared Outline Shadowsocks handler]
    WS --> Outline
    Outline --> Internet[Internet]
Loading

Reviews (2): Last reviewed commit: "Rework Caddy guide: dual transports, IP ..." | Re-trigger Greptile

Comment thread docs/vpn/advanced/caddy.mdx
Comment thread docs/vpn/advanced/caddy.mdx
Replace the "HTTPS with Caddy" page with a full deployment tutorial
(now caddy.mdx) built on the outlinecaddy module from tunnel-server:

- Serve direct Shadowsocks TCP/UDP and Shadowsocks-over-WebSockets from
  one Caddy config with shared access keys
- Support Let's Encrypt IP certificates (shortlived ACME profile) as an
  alternative to domain certificates, via tabbed setup options
- Build with the bundled cmd/caddy main package (go install) instead of
  xcaddy, which is kept as a collapsed alternative
- Generate secrets into ~/outline.env so configs and access keys are
  produced by copy-paste heredocs with no manual placeholder editing
- Add firewall commands (ufw/firewalld), per-step checkpoints with
  expected output, a troubleshooting section, and an architecture SVG
- Run Caddy as a systemd service under a dedicated user
- Drop the stale caddy.md translations so locales fall back to the
  up-to-date English page

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant