How to configure Caddy as a reverse proxy to serve FreshRSS through a subfolder or subdomain
To set up FreshRSS behind a reverse proxy with Caddy and using a subfolder, follow these steps:
Configure Caddyfile:
Update your Caddyfile with the following configuration:
example.com {
redir /subfolder /subfolder/ # Just to redirect users that are missing the closing slash to the correct page
handle_path /subfolder/* { # Actually configures the used subfolder (also internally strips the path prefix)
reverse_proxy freshrss:80 { # Enables the reverse proxy for the configured program:port
header_up X-Forwarded-Prefix "/subfolder" # Sets the correct header for the login cookies
}
}
}
Replace example.com with your actual domain and the four instances of subfolder with the subfolder where you want FreshRSS to be hosted.
NOTE: Ensure that the Docker container name for FreshRSS (freshrss in this example) matches the name used in the Caddyfile configuration.
Update FreshRSS Configuration:
Open the config.php file in your FreshRSS installation and update the base_url parameter to match the subfolder configuration:
'base_url' => 'https://example.com/subfolder',
Replace example.com with your actual domain and subfolder with the same subfolder name specified in the Caddyfile.
Restart Caddy and FreshRSS:
Restart Caddy to apply the configuration changes:
docker compose restart caddy
Restart FreshRSS to ensure that it recognizes the new base URL:
docker compose restart freshrss
Access FreshRSS:
FreshRSS should now be accessible at https://example.com/subfolder.
To set up FreshRSS behind a reverse proxy with Caddy and using a subdomain, follow these steps:
Configure Caddyfile:
Update your Caddyfile with the following configuration:
subdomain.example.com { # The url Caddy should serve the proxy on
reverse_proxy freshrss:80 # Enables the reverse proxy for the configured program:port
}
Replace example.com with your actual domain and subdomain with the subfolder where you want FreshRSS to be hosted.
NOTE: Ensure that the Docker container name for FreshRSS (freshrss in this example) matches the name used in the Caddyfile configuration. NOTE: Make sure to set the DNS Records for your configured subdomain.
Update FreshRSS Configuration:
Open the config.php file in your FreshRSS installation and update the base_url parameter to match the subdomain configuration:
'base_url' => 'https://subdomain.example.com/',
Replace example.com with your actual domain and subdomain with the same subdomain specified in the Caddyfile.
Restart Caddy and FreshRSS:
Restart Caddy to apply the configuration changes:
docker compose restart caddy
Restart FreshRSS to ensure that it recognizes the new base URL:
docker compose restart freshrss
Access FreshRSS:
FreshRSS should now be accessible at https://subdomain.example.com/.