Update for support freshrss
This commit is contained in:
parent
dee298ee87
commit
9788c328c3
5
.env
5
.env
|
@ -29,3 +29,8 @@ RSSHUB_DOMAIN_KEY=yourdomain.com.key
|
|||
NGINX_VERSION=stable
|
||||
TTRSS_IMAGE=wangqiru/ttrss
|
||||
TTRSS_VERSION=latest-2021-05-19
|
||||
|
||||
# ------------------------------------- FreshRSS ------------------------------------- #
|
||||
POSTGRES_DB=freshrss
|
||||
POSTGRES_USER=freshrss
|
||||
EXPOSED_PORT=30001
|
|
@ -0,0 +1,63 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest-arm
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest-arm
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest-arm
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest-arm
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
|
||||
depends_on:
|
||||
- redis
|
||||
- browserless
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
browserless:
|
||||
image: browserless/chrome
|
||||
restart: always
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
freshrss-db:
|
||||
image: postgres:12-alpine
|
||||
# container_name: freshrss-db
|
||||
hostname: freshrss-db
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-freshrss}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-freshrss}
|
||||
|
||||
service.rss:
|
||||
image: freshrss/freshrss:latest
|
||||
# container_name: freshrss-app
|
||||
hostname: freshrss-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
volumes:
|
||||
- ./data:/var/www/FreshRSS/data
|
||||
- ./extensions:/var/www/FreshRSS/extensions
|
||||
environment:
|
||||
CRON_MIN: '*/20'
|
||||
TZ: Asia/Shanghai
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
|
||||
depends_on:
|
||||
- redis
|
||||
- browserless
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
browserless:
|
||||
image: browserless/chrome
|
||||
restart: always
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
service.mercury:
|
||||
image: wangqiru/mercury-parser-api:latest
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
service.opencc:
|
||||
image: wangqiru/opencc-api-server:latest
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
service.mercury:
|
||||
image: wangqiru/mercury-parser-api:latest
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
service.opencc:
|
||||
image: wangqiru/opencc-api-server:latest
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
# ---------------------------------------- acme.sh ---------------------------------------- #
|
||||
acme:
|
||||
image: neilpang/acme.sh
|
||||
# container_name: acme
|
||||
volumes:
|
||||
- ./acme:/conf
|
||||
- ./nginx/ssl:/ssl
|
||||
restart: always
|
||||
network_mode: host
|
||||
command: ["sh", "-c", "/conf/start.sh"]
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
version: "3"
|
||||
|
||||
|
||||
networks:
|
||||
rssforever:
|
||||
|
||||
|
||||
# ---------------------------------------- nginx ---------------------------------------- #
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:${NGINX_VERSION}
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./nginx/conf/nginx.sh:/nginx.sh
|
||||
- ./nginx/vhost:/etc/nginx/conf.d/vhost
|
||||
- ./nginx/ssl:/etc/nginx/ssl
|
||||
- ./nginx/html:/usr/share/nginx/html
|
||||
environment:
|
||||
- PROTOCOL=${PROTOCOL}
|
||||
- RSS_DOMAIN=${RSS_DOMAIN}
|
||||
- RSS_DOAMIN_CERT=${RSS_DOAMIN_CERT}
|
||||
- RSS_DOMAIN_KEY=${RSS_DOMAIN_KEY}
|
||||
- RSSHUB_DOMAIN=${RSSHUB_DOMAIN}
|
||||
- RSSHUB_DOAMIN_CERT=${RSSHUB_DOAMIN_CERT}
|
||||
- RSSHUB_DOMAIN_KEY=${RSSHUB_DOMAIN_KEY}
|
||||
networks:
|
||||
- rssforever
|
||||
depends_on:
|
||||
- service.rss
|
||||
- rsshub
|
||||
command: ["sh", "-c", "/nginx.sh"]
|
||||
|
||||
|
||||
# ---------------------------------------- ttrss ---------------------------------------- #
|
||||
service.rss:
|
||||
image: ${TTRSS_IMAGE}:${TTRSS_VERSION}
|
||||
environment:
|
||||
- SELF_URL_PATH=${PROTOCOL}://${RSS_DOMAIN}
|
||||
- DB_PASS=${POSTGRES_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- ENABLE_PLUGINS=auth_internal,remove_iframe_sandbox
|
||||
networks:
|
||||
- rssforever
|
||||
stdin_open: true
|
||||
tty: true
|
||||
restart: always
|
||||
|
||||
|
||||
service.mercury:
|
||||
image: wangqiru/mercury-parser-api:latest
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
service.opencc:
|
||||
image: wangqiru/opencc-api-server:latest
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
database.postgres:
|
||||
image: postgres:13-alpine
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./rss/postgres/data/:/var/lib/postgresql/data
|
||||
networks:
|
||||
- rssforever
|
||||
restart: always
|
||||
|
||||
|
||||
# ---------------------------------------- rsshub ---------------------------------------- #
|
||||
rsshub:
|
||||
image: diygod/rsshub
|
||||
restart: always
|
||||
ports:
|
||||
- 1200:1200
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
CACHE_TYPE: redis
|
||||
REDIS_URL: 'redis://redis:6379/'
|
||||
PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
|
||||
depends_on:
|
||||
- redis
|
||||
- browserless
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
browserless:
|
||||
image: browserless/chrome
|
||||
restart: always
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./rsshub/redis-data:/data
|
||||
networks:
|
||||
- rssforever
|
||||
|
||||
|
||||
# ---------------------------------------- watchtower ---------------------------------------- #
|
||||
# 每天早上 10 点定时更新 RSSHub , 如无需可注释或删除本段.
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
|
@ -125,7 +125,7 @@ services:
|
|||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_SCHEDULE=0 0 10 * * *
|
||||
restart: always
|
||||
command: rssforever_watchtower_1 rssforever_rsshub_1 rssforever_redis_1 rssforever_browserless_1 rssforever_acme_1
|
||||
command: rssforever-watchtower-1 rssforever_rsshub-1 rssforever_redis-1 rssforever_browserless-1 rssforever_acme-1
|
||||
networks:
|
||||
- rssforever
|
||||
|
391
install.sh
391
install.sh
|
@ -13,26 +13,22 @@ Font="\033[0m"
|
|||
WORK_PATH=$(dirname $(readlink -f $0))
|
||||
UNAME=$(uname -m)
|
||||
|
||||
|
||||
menu (){
|
||||
welcome (){
|
||||
clear
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
echo -e "${Green}欢迎使用 nginx + ttrss + rsshub + watchtower 一键安装脚本${Font}"
|
||||
echo -e "${Green}欢迎使用 TTRSS / FreshRSS / RSSHub 一键安装脚本${Font}"
|
||||
echo -e "${Red}注意:本脚本需要服务器有 docker 和 docker compose 环境${Font}"
|
||||
echo -e "${Green}2021-07-01 更新同时支持 X86 和 ARM 架构${Font}"
|
||||
echo -e "${Green}更新支持 FreshRSS 服务${Font}"
|
||||
echo -e "${Green}更新同时支持 X86 和 ARM 架构${Font}"
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
echo "1) nginx + ttrss + rsshub + watchtower"
|
||||
echo "2) nginx + ttrss"
|
||||
echo "3) 退出脚本"
|
||||
echo "1) 开始执行环境检查,确保本服务器满足安装条件."
|
||||
echo "2) 退出脚本"
|
||||
read -p "请输入:" CHOICE_INPUT
|
||||
case "$CHOICE_INPUT" in
|
||||
1)
|
||||
choice1
|
||||
check_env
|
||||
;;
|
||||
2)
|
||||
choice2
|
||||
;;
|
||||
3)
|
||||
echo -e "${Red}已退出脚本.${Font}"
|
||||
exit 0
|
||||
;;
|
||||
|
@ -42,108 +38,141 @@ menu (){
|
|||
esac
|
||||
}
|
||||
|
||||
|
||||
choice1 (){
|
||||
echo -e "${Green}当前选择 nginx + ttrss + rsshub + watchtower${Font}"
|
||||
echo "1) 全自动申请和续签泛域名证书"
|
||||
echo "2) 无需 SSL 证书"
|
||||
echo "3) 退出脚本"
|
||||
check_env (){
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
read -p "请输入:" CHOICE1_INPUT
|
||||
case "$CHOICE1_INPUT" in
|
||||
1)
|
||||
confirm_domain
|
||||
conf_ssl $*
|
||||
git_clone
|
||||
conf_env
|
||||
arm_x86_all
|
||||
conf_auto_acme
|
||||
up
|
||||
;;
|
||||
2)
|
||||
confirm_domain
|
||||
git_clone
|
||||
conf_env
|
||||
remove_acme
|
||||
arm_x86_all
|
||||
up
|
||||
;;
|
||||
3)
|
||||
echo -e "${Red}已退出脚本.${Font}"
|
||||
echo -e "${Green}开始检查服务器环境${Font}"
|
||||
# if ! type docker >/dev/null 2>&1 ; then
|
||||
# echo -e "${Red}当前系统 docker 未安装,已退出脚本.${Font}"
|
||||
# exit 0
|
||||
# fi
|
||||
# if ! type docker-compose >/dev/null 2>&1 ; then
|
||||
# echo -e "${Red}当前系统 docker-compose 未安装,已退出脚本.${Font}"
|
||||
# exit 0
|
||||
# fi
|
||||
# if ! type git >/dev/null 2>&1 ; then
|
||||
# echo -e "${Red}当前系统 git 未安装,已退出脚本.${Font}"
|
||||
# exit 0
|
||||
# fi
|
||||
if [ -d "${WORK_PATH}/rssforever" ] ; then
|
||||
echo -e "${Red}当前目录存在 rssforever 项目.请更换目录,或删除后再次执行脚本.${Font}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo -e "${Red}输入有误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
esac
|
||||
}
|
||||
|
||||
choice2 (){
|
||||
echo -e "${Green}当前选择 nginx + ttrss${Font}"
|
||||
echo "1) 全自动申请和续签泛域名证书"
|
||||
echo "2) 无需 SSL 证书"
|
||||
echo "3) 退出脚本"
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
read -p "请输入:" CHOICE2_INPUT
|
||||
case "$CHOICE2_INPUT" in
|
||||
1)
|
||||
confirm_domain
|
||||
conf_ssl $*
|
||||
git_clone
|
||||
conf_env
|
||||
remove_rsshub
|
||||
arm_x86_ttrss_only
|
||||
conf_auto_acme
|
||||
up
|
||||
;;
|
||||
2)
|
||||
confirm_domain
|
||||
git_clone
|
||||
conf_env
|
||||
remove_acme
|
||||
remove_rsshub
|
||||
arm_x86_ttrss_only
|
||||
up
|
||||
;;
|
||||
3)
|
||||
echo -e "${Red}已退出脚本.${Font}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo -e "${Red}输入有误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
confirm_domain (){
|
||||
clear
|
||||
if [ "${CHOICE1_INPUT}" == "1" ] || [ "${CHOICE2_INPUT}" == "1" ]; then
|
||||
echo -e "${Green}请输入需要申请泛域名证书的根域名(例如:ioiox.com):${Font}"
|
||||
read -p "请输入:" DOMAIN_INPUT
|
||||
if [ ! -n "${DOMAIN_INPUT}" ]; then
|
||||
echo -e "${Red}输入错误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
DOMAIN=$DOMAIN_INPUT
|
||||
echo -e "${Green}请输入 ttrss 使用的域名(例如:rss.ioiox.com):${Font}"
|
||||
|
||||
echo -e "${Green}服务器完成检查,开始执行脚本.${Font}"
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
get_info
|
||||
}
|
||||
|
||||
get_info () {
|
||||
# 选择 RSS 服务
|
||||
echo -e "${Green}选择 RSS 服务${Font}"
|
||||
echo "1) TTRSS"
|
||||
echo "2) FreshRSS"
|
||||
echo "3) 退出脚本"
|
||||
read -p "请输入:" CHOICE_RSS_INPUT
|
||||
case "$CHOICE_RSS_INPUT" in
|
||||
1)
|
||||
RSS="TTRSS"
|
||||
;;
|
||||
2)
|
||||
RSS="FreshRSS"
|
||||
;;
|
||||
3)
|
||||
echo -e "${Red}已退出脚本.${Font}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo -e "${Red}输入有误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
esac
|
||||
|
||||
# 选择 RSSHub 服务
|
||||
echo -e "${Green}选择 RSSHub 服务${Font}"
|
||||
echo "1) 添加 RSSHub 服务"
|
||||
echo "2) 无需添加 RSSHub 服务"
|
||||
echo "3) 退出脚本"
|
||||
read -p "请输入:" CHOICE_RSSHUB_INPUT
|
||||
case "$CHOICE_RSSHUB_INPUT" in
|
||||
1)
|
||||
RSSHUB="yes"
|
||||
RSSHUB_SHOW_INFO="已添加"
|
||||
;;
|
||||
2)
|
||||
RSSHUB="no"
|
||||
RSSHUB_SHOW_INFO="未添加"
|
||||
;;
|
||||
3)
|
||||
echo -e "${Red}已退出脚本.${Font}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo -e "${Red}输入有误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
esac
|
||||
|
||||
# 选择 HTTP 协议
|
||||
echo -e "${Green}选择是否开启 HTTPS 支持${Font}"
|
||||
echo "1) HTTPS 协议"
|
||||
echo "2) HTTP 协议"
|
||||
echo "3) 退出脚本"
|
||||
read -p "请输入:" CHOICE_PROTOCOL_INPUT
|
||||
case "$CHOICE_PROTOCOL_INPUT" in
|
||||
1)
|
||||
PROTOCOL="https"
|
||||
;;
|
||||
2)
|
||||
PROTOCOL="http"
|
||||
;;
|
||||
3)
|
||||
echo -e "${Red}已退出脚本.${Font}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo -e "${Red}输入有误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
esac
|
||||
|
||||
if [ "${RSSHUB}" == "yes" ] && [ "${PROTOCOL}" == "https" ]; then
|
||||
echo -e "${Green}注意:本脚本自带申请域名证书功能. RSS 和 RSSHub 必须为同一域名的子域名.${Font}"
|
||||
fi
|
||||
|
||||
# 输入 RSS 域名信息
|
||||
echo -e "${Green}请输入 RSS 使用的域名(例如:rss.ioiox.com):${Font}"
|
||||
read -p "请输入:" RSS_DOMAIN_INPUT
|
||||
if [ ! -n "${RSS_DOMAIN_INPUT}" ]; then
|
||||
echo -e "${Red}输入错误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
fi
|
||||
if [ "${CHOICE_INPUT}" == "1" ] ; then
|
||||
echo -e "${Green}请输入 rsshub 使用的域名(例如:rsshub.ioiox.com):${Font}"
|
||||
RSS_DOMAIN=$RSS_DOMAIN_INPUT
|
||||
|
||||
# 输入 RSSHub 域名信息
|
||||
if [ "${RSSHUB}" == "yes" ] ; then
|
||||
echo -e "${Green}请输入 RSSHub 使用的域名(例如:rsshub.ioiox.com):${Font}"
|
||||
read -p "请输入:" RSSHUB_DOMAIN_INPUT
|
||||
if [ ! -n "${RSSHUB_DOMAIN_INPUT}" ]; then
|
||||
echo -e "${Red}输入错误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
fi
|
||||
RSSHUB_DOMAIN=$RSSHUB_DOMAIN_INPUT
|
||||
fi
|
||||
|
||||
if [ "${PROTOCOL}" == "https" ] ; then
|
||||
get_acme_info
|
||||
else
|
||||
show_info
|
||||
fi
|
||||
}
|
||||
|
||||
conf_ssl (){
|
||||
get_acme_info () {
|
||||
echo -e "${Green}输入主域名用于部署和申请证书${Font}"
|
||||
echo -e "${Green}请输入需要申请泛域名证书的根域名(例如:ioiox.com):${Font}"
|
||||
read -p "请输入:" DOMAIN_INPUT
|
||||
if [ ! -n "${DOMAIN_INPUT}" ]; then
|
||||
echo -e "${Red}输入错误,请重新运行脚本.${Font}"
|
||||
exit 0
|
||||
fi
|
||||
DOMAIN=$DOMAIN_INPUT
|
||||
# 输入域名服务商信息
|
||||
echo -e "${Green}请选择域名服务商:${Font}"
|
||||
echo -e "1) 腾讯云 dnspod.cn"
|
||||
echo -e "2) 阿里云 aliyun"
|
||||
|
@ -151,13 +180,13 @@ conf_ssl (){
|
|||
read -p "请选择:" DNSAPI_INPUT
|
||||
case "$DNSAPI_INPUT" in
|
||||
1)
|
||||
PLATFORM_NAME='dnspod.cn'
|
||||
PLATFORM_NAME='腾讯云'
|
||||
DNSAPI='dns_dp'
|
||||
API_ID_HEADER='DP_Id'
|
||||
API_KEY_HEADER='DP_Key'
|
||||
;;
|
||||
2)
|
||||
PLATFORM_NAME='aliyun'
|
||||
PLATFORM_NAME='阿里云'
|
||||
DNSAPI='dns_ali'
|
||||
API_ID_HEADER='Ali_Key'
|
||||
API_KEY_HEADER='Ali_Secret'
|
||||
|
@ -173,6 +202,7 @@ conf_ssl (){
|
|||
echo -e "${Green}=========================================================================================${Font}"
|
||||
echo -e "${Red}注意: Cloudflare API 有三种:${Font}"
|
||||
echo -e "${Red}请参考 https://github.com/acmesh-official/acme.sh/wiki/dnsapi#1-cloudflare-option 选择.${Font}"
|
||||
echo -e "${Red}推荐使用第二种: 可参考 https://ssl.ioiox.com/dnsapi.html 获取:${Font}"
|
||||
echo "1) Using the global API key"
|
||||
echo "2) Using the new cloudflare api token"
|
||||
echo "3) Using the new cloudflare api token for Single Zone"
|
||||
|
@ -210,15 +240,29 @@ conf_ssl (){
|
|||
read -p "请输入 $API_ZONE_HEADER :" API_ZONE_HEADER_INPUT
|
||||
fi
|
||||
|
||||
show_info
|
||||
|
||||
}
|
||||
|
||||
|
||||
show_info (){
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
echo -e "${Red}请确认以下信息正确无误!${Font}"
|
||||
echo -e "${Green}域名: ${Font}${Red}${DOMAIN}${Font}"
|
||||
echo -e "${Green}域名服务商: ${Font}${Red}${PLATFORM_NAME}${Font}"
|
||||
echo -e "${Green}${API_ID_HEADER}:${Font} ${Red}${API_ID_INPUT}${Font}"
|
||||
echo -e "${Green}${API_KEY_HEADER}:${Font} ${Red}${API_KEY_INPUT}${Font}"
|
||||
if [ "$CHOICE_CLOUDFLARE_INPUT" == "3" ]; then
|
||||
echo -e "${Green}${API_ZONE_HEADER}:${Font} ${Red}${API_ZONE_HEADER_INPUT}${Font}"
|
||||
echo -e "${Green}当前服务器架构为${Font} ${Red}$UNAME${Font}"
|
||||
echo -e "${Green}RSS 服务为${Font} ${Red}${RSS}${Font}"
|
||||
echo -e "${Green}RSSHub 服务${Font} ${Red}${RSSHUB_SHOW_INFO}${Font}"
|
||||
echo -e "${Green}RSS 域名为${Font} ${Red} ${RSS_DOMAIN}${Font}"
|
||||
if [ "${RSSHUB}" == "yes" ] ; then
|
||||
echo -e "${Green}RSSHub 域名为${Font} ${Red}${RSSHUB_DOMAIN}${Font}"
|
||||
fi
|
||||
if [ "${PROTOCOL}" == "https" ] ; then
|
||||
echo -e "${Green}申请泛域名证书${Font} ${Red}$DOMAIN${Font}"
|
||||
echo -e "${Green}域名服务商: ${Font}${Red}${PLATFORM_NAME}${Font}"
|
||||
echo -e "${Green}${API_ID_HEADER}:${Font} ${Red}${API_ID_INPUT}${Font}"
|
||||
echo -e "${Green}${API_KEY_HEADER}:${Font} ${Red}${API_KEY_INPUT}${Font}"
|
||||
if [ "$CHOICE_CLOUDFLARE_INPUT" == "3" ]; then
|
||||
echo -e "${Green}${API_ZONE_HEADER}:${Font} ${Red}${API_ZONE_HEADER_INPUT}${Font}"
|
||||
fi
|
||||
fi
|
||||
echo -e "${Red}请再次确认以上信息正确无误!${Font}"
|
||||
echo -e "${Green}=========================================================================================${Font}"
|
||||
|
@ -228,7 +272,7 @@ conf_ssl (){
|
|||
case "$START_INPUT" in
|
||||
1)
|
||||
echo -e "${Green}开始部署中......${Font}"
|
||||
acme $*
|
||||
start
|
||||
;;
|
||||
2)
|
||||
exit 0
|
||||
|
@ -239,7 +283,16 @@ conf_ssl (){
|
|||
esac
|
||||
}
|
||||
|
||||
acme (){
|
||||
start () {
|
||||
if [ "${PROTOCOL}" == "https" ]; then
|
||||
acme
|
||||
else
|
||||
git_clone
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
acme () {
|
||||
TEMP=${RANDOM}
|
||||
mkdir -p ${WORK_PATH}/${TEMP}
|
||||
cat >${WORK_PATH}/${TEMP}/account.conf<<EOF
|
||||
|
@ -272,24 +325,31 @@ EOF
|
|||
if [ ! -f "${WORK_PATH}/${TEMP}/${DOMAIN}/fullchain.cer" ] ; then
|
||||
echo -e "${Green}证书申请失败,请重新尝试,已退出脚本.${Font}"
|
||||
exit 0
|
||||
else
|
||||
echo -e "${Green}证书申请成功,开始部署.${Font}"
|
||||
git_clone
|
||||
fi
|
||||
}
|
||||
|
||||
git_clone (){
|
||||
git clone https://github.com/stilleshan/rssforever.git
|
||||
conf_domain
|
||||
}
|
||||
|
||||
conf_env (){
|
||||
|
||||
conf_domain (){
|
||||
sed -i \
|
||||
-e "/rss.yourdomain.com/s/rss.yourdomain.com/${RSS_DOMAIN_INPUT}/g" \
|
||||
-e "/rss.yourdomain.com/s/rss.yourdomain.com/${RSS_DOMAIN}/g" \
|
||||
-e "/rssforever.com/s/rssforever.com/rssforever.com-${TEMP}/g" \
|
||||
${WORK_PATH}/rssforever/.env
|
||||
|
||||
if [ "${CHOICE_INPUT}" == "1" ] ; then
|
||||
sed -i "/rsshub.yourdomain.com/s/rsshub.yourdomain.com/${RSSHUB_DOMAIN_INPUT}/g" ${WORK_PATH}/rssforever/.env
|
||||
if [ "${RSSHUB}" == "yes" ] ; then
|
||||
sed -i "/rsshub.yourdomain.com/s/rsshub.yourdomain.com/${RSSHUB_DOMAIN}/g" ${WORK_PATH}/rssforever/.env
|
||||
else
|
||||
mv ${WORK_PATH}/rssforever/nginx/vhost/rsshub.conf ${WORK_PATH}/rssforever/nginx/vhost/rsshub.conf.bak
|
||||
fi
|
||||
|
||||
if [ "${CHOICE1_INPUT}" == "1" ] || [ "${CHOICE2_INPUT}" == "1" ]; then
|
||||
if [ "${PROTOCOL}" == "https" ] ; then
|
||||
cp ${WORK_PATH}/${TEMP}/${DOMAIN}/fullchain.cer ${WORK_PATH}/rssforever/nginx/ssl/${DOMAIN}.cer
|
||||
cp ${WORK_PATH}/${TEMP}/${DOMAIN}/${DOMAIN}.key ${WORK_PATH}/rssforever/nginx/ssl
|
||||
sed -i \
|
||||
|
@ -298,13 +358,9 @@ conf_env (){
|
|||
-e "/yourdomain.com.key/s/yourdomain.com.key/${DOMAIN}.key/g" \
|
||||
${WORK_PATH}/rssforever/.env
|
||||
rm -rf ${WORK_PATH}/${TEMP}
|
||||
conf_auto_acme
|
||||
fi
|
||||
}
|
||||
|
||||
remove_rsshub (){
|
||||
sed -i '80,131d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
sed -i '34d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
mv ${WORK_PATH}/rssforever/nginx/vhost/rsshub.conf ${WORK_PATH}/rssforever/nginx/vhost/rsshub.conf.bak
|
||||
set_deploy
|
||||
}
|
||||
|
||||
conf_auto_acme (){
|
||||
|
@ -319,57 +375,68 @@ EOF
|
|||
fi
|
||||
}
|
||||
|
||||
remove_acme (){
|
||||
sed -i '133,143d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
}
|
||||
|
||||
arm_x86_all (){
|
||||
echo "Check X86 or ARM"
|
||||
if [ ! $UNAME == "x86_64" ] ; then
|
||||
sed -i '98,104d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
sed -i '53,68d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
sed -i '/PUPPETEER_WS_ENDPOINT/d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
sed -i '/- browserless/d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
set_deploy () {
|
||||
if [ "${RSS}" == "TTRSS" ]; then
|
||||
if [ "${RSSHUB}" == "yes" ]; then
|
||||
if [ "${PROTOCOL}" == "https" ]; then
|
||||
COMPOSE_FILE="ttrss-rsshub-https.yml"
|
||||
SUCCESS_MSG="TTRSS / RSSHub / HTTPS"
|
||||
fi
|
||||
if [ "${PROTOCOL}" == "http" ]; then
|
||||
COMPOSE_FILE="ttrss-rsshub-http.yml"
|
||||
SUCCESS_MSG="TTRSS / RSSHub / HTTP"
|
||||
fi
|
||||
fi
|
||||
if [ "${RSSHUB}" == "no" ]; then
|
||||
if [ "${PROTOCOL}" == "https" ]; then
|
||||
COMPOSE_FILE="ttrss-https.yml"
|
||||
SUCCESS_MSG="TTRSS / HTTPS"
|
||||
fi
|
||||
if [ "${PROTOCOL}" == "http" ]; then
|
||||
COMPOSE_FILE="ttrss-http.yml"
|
||||
SUCCESS_MSG="TTRSS / HTTP"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
arm_x86_ttrss_only (){
|
||||
echo "Check X86 or ARM"
|
||||
if [ ! $UNAME == "x86_64" ] ; then
|
||||
sed -i '53,68d' ${WORK_PATH}/rssforever/docker-compose.yml
|
||||
if [ "${RSS}" == "FreshRSS" ]; then
|
||||
if [ "${RSSHUB}" == "yes" ]; then
|
||||
if [ "${PROTOCOL}" == "https" ]; then
|
||||
COMPOSE_FILE="freshrss-rsshub-https.yml"
|
||||
SUCCESS_MSG="FreshRSS / RSSHub / HTTPS"
|
||||
fi
|
||||
if [ "${PROTOCOL}" == "http" ]; then
|
||||
COMPOSE_FILE="freshrss-rsshub-http.yml"
|
||||
SUCCESS_MSG="FreshRSS / RSSHub / HTTP"
|
||||
fi
|
||||
fi
|
||||
if [ "${RSSHUB}" == "no" ]; then
|
||||
if [ "${PROTOCOL}" == "https" ]; then
|
||||
COMPOSE_FILE="freshrss-https.yml"
|
||||
SUCCESS_MSG="FreshRSS / HTTPS"
|
||||
fi
|
||||
if [ "${PROTOCOL}" == "http" ]; then
|
||||
COMPOSE_FILE="freshrss-http.yml"
|
||||
SUCCESS_MSG="FreshRSS / HTTP"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
up
|
||||
}
|
||||
|
||||
up (){
|
||||
up () {
|
||||
cd ${WORK_PATH}/rssforever
|
||||
docker-compose up -d
|
||||
if [ "$CHOICE1_INPUT" == "1" ]; then
|
||||
echo -e "${Green}nginx + ttrss + rsshub + watchtower + acme 部署完毕${Font}"
|
||||
elif [ "$CHOICE1_INPUT" == "2" ]; then
|
||||
echo -e "${Green}nginx + ttrss + rsshub + watchtower 部署完毕${Font}"
|
||||
elif [ "$CHOICE2_INPUT" == "1" ]; then
|
||||
echo -e "${Green}nginx + ttrss + acme 部署完毕${Font}"
|
||||
elif [ "$CHOICE2_INPUT" == "2" ]; then
|
||||
echo -e "${Green}nginx + ttrss 部署完毕${Font}"
|
||||
if [ "${UNAME}" == "x86_64" ]; then
|
||||
ARCH=x86
|
||||
ARCH_UPCASE=X86
|
||||
else
|
||||
ARCH=arm
|
||||
ARCH_UPCASE=ARM
|
||||
fi
|
||||
cp ${WORK_PATH}/compose_files/${ARCH}/${COMPOSE_FILE} ./docker-compose.yml
|
||||
docker-compose up -d
|
||||
cd ${WORK_PATH}/
|
||||
echo -e "${Green}${SUCCESS_MSG} / ${ARCH_UPCASE} 部署成功${Font}"
|
||||
}
|
||||
|
||||
|
||||
if ! type docker-compose >/dev/null 2>&1 ; then
|
||||
echo -e "${Red}本机未安装 docker compose 已退出脚本.${Font}";
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! type git >/dev/null 2>&1 ; then
|
||||
echo -e "${Red}本机未安装 git 已退出脚本.${Font}"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -d "${WORK_PATH}/rssforever" ] ; then
|
||||
echo -e "${Green}当前目录存在 rssforever 项目.请更换目录,或删除后再次执行脚本.${Font}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
menu $*
|
||||
rm $0
|
||||
welcome
|
||||
|
|
Loading…
Reference in New Issue