Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion bin/quickstart-verify
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,14 @@ end
config = compose_config
services = config.fetch('services') { abort('quickstart verify failed: missing top-level services map') }
web = fetch_service!(services, 'html2rss-web')
caddy = fetch_service!(services, 'caddy')
fetch_service!(services, 'botasaurus')

assert_equal!(web['image'], EXPECTED_WEB_IMAGE, 'html2rss-web image')
environment = web.fetch('environment') { abort('quickstart verify failed: html2rss-web missing environment map') }
assert_equal!(environment['RACK_ENV'], EXPECTED_RACK_ENV, 'html2rss-web RACK_ENV')
assert_equal!(environment['HTML2RSS_ACCESS_TOKEN'], EXPECTED_ACCESS_TOKEN, 'html2rss-web HTML2RSS_ACCESS_TOKEN')
assert_equal!(environment['BOTASAURUS_SCRAPER_URL'], EXPECTED_SCRAPER_URL, 'html2rss-web BOTASAURUS_SCRAPER_URL')
assert_port_mapping!(web['ports'])
assert_port_mapping!(caddy['ports'])

puts 'quickstart verify passed'
34 changes: 32 additions & 2 deletions docker-compose.quickstart.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,42 @@
services:
html2rss-web:
image: ${HTML2RSS_WEB_IMAGE:-html2rss/web:1}
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "127.0.0.1:4000:4000"
volumes:
- caddy_data:/data
- caddy_config:/config
depends_on:
- html2rss-web
command:
- sh
- -c
- |
caddy run --config - --adapter caddyfile <<EOF
{
admin off
${CADDY_GLOBAL_OPTIONS:-}
}
https://localhost:4000 {
reverse_proxy html2rss-web:4000 {
header_up X-Forwarded-For {client_ip}
header_up X-Real-IP {client_ip}
header_down -Via
}
}
EOF

html2rss-web:
image: ${HTML2RSS_WEB_IMAGE:-html2rss/web:1}
environment:
RACK_ENV: development
HTML2RSS_ACCESS_TOKEN: CHANGE_ME_ADMIN_TOKEN
BOTASAURUS_SCRAPER_URL: http://botasaurus:4010

botasaurus:
image: html2rss/botasaurus-scrape-api:latest

volumes:
caddy_data:
caddy_config:
45 changes: 35 additions & 10 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,38 @@
# This is the default configuration - customize as needed

services:
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- caddy_data:/data
- caddy_config:/config
depends_on:
- html2rss-web
command:
- sh
- -c
- |
caddy run --config - --adapter caddyfile <<EOF
{
admin off
${CADDY_GLOBAL_OPTIONS:-}
}
https://${CADDY_HOST:-localhost} {
reverse_proxy html2rss-web:4000 {
header_up X-Forwarded-For {client_ip}
header_up X-Real-IP {client_ip}
header_down -Via
}
}
EOF

html2rss-web:
image: html2rss/web
restart: unless-stopped
ports:
- "127.0.0.1:4000:4000"
env_file:
- path: .env
required: false
Expand All @@ -15,6 +42,8 @@ services:
PORT: 4000
BUILD_TAG: ${BUILD_TAG:-local}
GIT_SHA: ${GIT_SHA:-local}
AUTO_SOURCE_ENABLED: ${AUTO_SOURCE_ENABLED:-false}
HTML2RSS_ACCESS_TOKEN: ${HTML2RSS_ACCESS_TOKEN:-}
HTML2RSS_SECRET_KEY: ${HTML2RSS_SECRET_KEY:?set HTML2RSS_SECRET_KEY}
HEALTH_CHECK_TOKEN: ${HEALTH_CHECK_TOKEN:?set HEALTH_CHECK_TOKEN}
SENTRY_DSN: ${SENTRY_DSN:-}
Expand All @@ -31,14 +60,6 @@ services:
# target: /app/config/feeds.yml
# read_only: true

watchtower:
image: containrrr/watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- "${HOME}/.docker/config.json:/config.json"
command: --cleanup --interval 7200

browserless:
image: "ghcr.io/browserless/chromium"
restart: unless-stopped
Expand All @@ -48,3 +69,7 @@ services:
PORT: 4002
CONCURRENT: 10
TOKEN: ${BROWSERLESS_IO_API_TOKEN:?set BROWSERLESS_IO_API_TOKEN}

volumes:
caddy_data:
caddy_config:
Loading