forked from dgtlmoon/changedetection.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5a4c4fd
commit 9b684e0
Showing
244 changed files
with
953 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,78 +1,6 @@ | ||
# pip dependencies install stage | ||
|
||
# @NOTE! I would love to move to 3.11 but it breaks the async handler in changedetectionio/content_fetchers/puppeteer.py | ||
# If you know how to fix it, please do! and test it for both 3.10 and 3.11 | ||
|
||
ARG PYTHON_VERSION=3.11 | ||
|
||
FROM python:${PYTHON_VERSION}-slim-bookworm AS builder | ||
|
||
# See `cryptography` pin comment in requirements.txt | ||
ARG CRYPTOGRAPHY_DONT_BUILD_RUST=1 | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
g++ \ | ||
gcc \ | ||
libc-dev \ | ||
libffi-dev \ | ||
libjpeg-dev \ | ||
libssl-dev \ | ||
libxslt-dev \ | ||
make \ | ||
zlib1g-dev | ||
|
||
RUN mkdir /install | ||
WORKDIR /install | ||
|
||
COPY requirements.txt /requirements.txt | ||
|
||
# --extra-index-url https://www.piwheels.org/simple is for cryptography module to be prebuilt (or rustc etc needs to be installed) | ||
RUN pip install --extra-index-url https://www.piwheels.org/simple --target=/dependencies -r /requirements.txt | ||
|
||
# Playwright is an alternative to Selenium | ||
# Excluded this package from requirements.txt to prevent arm/v6 and arm/v7 builds from failing | ||
# https://github.com/dgtlmoon/changedetection.io/pull/1067 also musl/alpine (not supported) | ||
RUN pip install --target=/dependencies playwright~=1.41.2 \ | ||
|| echo "WARN: Failed to install Playwright. The application can still run, but the Playwright option will be disabled." | ||
|
||
# Final image stage | ||
FROM python:${PYTHON_VERSION}-slim-bookworm | ||
FROM ghcr.io/dgtlmoon/changedetection.io | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
libxslt1.1 \ | ||
# For presenting price amounts correctly in the restock/price detection overview | ||
locales \ | ||
# For pdftohtml | ||
poppler-utils \ | ||
zlib1g \ | ||
&& apt-get clean && rm -rf /var/lib/apt/lists/* | ||
|
||
|
||
# https://stackoverflow.com/questions/58701233/docker-logs-erroneously-appears-empty-until-container-stops | ||
ENV PYTHONUNBUFFERED=1 | ||
|
||
RUN [ ! -d "/datastore" ] && mkdir /datastore | ||
|
||
# Re #80, sets SECLEVEL=1 in openssl.conf to allow monitoring sites with weak/old cipher suites | ||
RUN sed -i 's/^CipherString = .*/CipherString = DEFAULT@SECLEVEL=1/' /etc/ssl/openssl.cnf | ||
|
||
# Copy modules over to the final image and add their dir to PYTHONPATH | ||
COPY --from=builder /dependencies /usr/local | ||
ENV PYTHONPATH=/usr/local | ||
|
||
EXPOSE 5000 | ||
|
||
# The actual flask app module | ||
COPY changedetectionio /app/changedetectionio | ||
# Starting wrapper | ||
COPY changedetection.py /app/changedetection.py | ||
|
||
# Github Action test purpose(test-only.yml). | ||
# On production, it is effectively LOGGER_LEVEL=''. | ||
ARG LOGGER_LEVEL='' | ||
ENV LOGGER_LEVEL "$LOGGER_LEVEL" | ||
|
||
WORKDIR /app | ||
CMD ["python", "./changedetection.py", "-d", "/datastore"] | ||
|
||
nodejs npm | ||
|
||
RUN npm i -g nodemon |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# pip dependencies install stage | ||
|
||
# @NOTE! I would love to move to 3.11 but it breaks the async handler in changedetectionio/content_fetchers/puppeteer.py | ||
# If you know how to fix it, please do! and test it for both 3.10 and 3.11 | ||
|
||
ARG PYTHON_VERSION=3.11 | ||
|
||
FROM python:${PYTHON_VERSION}-slim-bookworm AS builder | ||
|
||
# See `cryptography` pin comment in requirements.txt | ||
ARG CRYPTOGRAPHY_DONT_BUILD_RUST=1 | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
g++ \ | ||
gcc \ | ||
libc-dev \ | ||
libffi-dev \ | ||
libjpeg-dev \ | ||
libssl-dev \ | ||
libxslt-dev \ | ||
make \ | ||
zlib1g-dev | ||
|
||
RUN mkdir /install | ||
WORKDIR /install | ||
|
||
COPY requirements.txt /requirements.txt | ||
|
||
# --extra-index-url https://www.piwheels.org/simple is for cryptography module to be prebuilt (or rustc etc needs to be installed) | ||
RUN pip install --extra-index-url https://www.piwheels.org/simple --target=/dependencies -r /requirements.txt | ||
|
||
# Playwright is an alternative to Selenium | ||
# Excluded this package from requirements.txt to prevent arm/v6 and arm/v7 builds from failing | ||
# https://github.com/dgtlmoon/changedetection.io/pull/1067 also musl/alpine (not supported) | ||
RUN pip install --target=/dependencies playwright~=1.41.2 \ | ||
|| echo "WARN: Failed to install Playwright. The application can still run, but the Playwright option will be disabled." | ||
|
||
# Final image stage | ||
FROM python:${PYTHON_VERSION}-slim-bookworm | ||
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
libxslt1.1 \ | ||
# For presenting price amounts correctly in the restock/price detection overview | ||
locales \ | ||
# For pdftohtml | ||
poppler-utils \ | ||
zlib1g \ | ||
&& apt-get clean && rm -rf /var/lib/apt/lists/* | ||
|
||
|
||
# https://stackoverflow.com/questions/58701233/docker-logs-erroneously-appears-empty-until-container-stops | ||
ENV PYTHONUNBUFFERED=1 | ||
|
||
RUN [ ! -d "/datastore" ] && mkdir /datastore | ||
|
||
# Re #80, sets SECLEVEL=1 in openssl.conf to allow monitoring sites with weak/old cipher suites | ||
RUN sed -i 's/^CipherString = .*/CipherString = DEFAULT@SECLEVEL=1/' /etc/ssl/openssl.cnf | ||
|
||
# Copy modules over to the final image and add their dir to PYTHONPATH | ||
COPY --from=builder /dependencies /usr/local | ||
ENV PYTHONPATH=/usr/local | ||
|
||
EXPOSE 5000 | ||
|
||
# The actual flask app module | ||
COPY changedetectionio /app/changedetectionio | ||
# Starting wrapper | ||
COPY changedetection.py /app/changedetection.py | ||
|
||
# Github Action test purpose(test-only.yml). | ||
# On production, it is effectively LOGGER_LEVEL=''. | ||
ARG LOGGER_LEVEL='' | ||
ENV LOGGER_LEVEL "$LOGGER_LEVEL" | ||
|
||
WORKDIR /app | ||
CMD ["python", "./changedetection.py", "-d", "/datastore"] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
uuid,paused,title,remarks,url,body,fetch_backend,method,link_to_site,tags | ||
,FALSE,missav/actresses/????,missav/actresses/????,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm42/actresses/%E5%90%89%E9%AB%98%E5%AF%A7%E5%AF%A7,missav | ||
,TRUE,youtube video @hkhoy,youtube video list for hoytv,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@hkhoy/videos,"tags1,tags2" | ||
,TRUE,youtube video @RTHK,youtube video list for RTHK,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@RTHK/videos,"tags1,tags2" | ||
,TRUE,youtube video @EggEggClubNewsChannel,youtube video list for EggEggClub,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@EggEggClubNewsChannel/videos,"tags1,tags2" | ||
,TRUE,youtube video @ChannelCHK,youtube video list for ChannelC,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@hkhoy/videos,"tags1,tags2" | ||
,TRUE,carousell_q coding,using google to search carousell with keyword coding,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/coding,carousell_q | ||
,TRUE,carousell_q javascript,using google to search carousell with keyword javascript,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/javascript,carousell_q | ||
,TRUE,carousell_q python,using google to search carousell with keyword python,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/python,carousell_q |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
uuid,paused,title,remarks,url,body,fetch_backend,method,link_to_site,tags | ||
,FALSE,missav/actresses/????,missav/actresses/????,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm42/actresses/%E5%90%89%E9%AB%98%E5%AF%A7%E5%AF%A7,missav | ||
,TRUE,youtube video @hkhoy,youtube video list for hoytv,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@hkhoy/videos,"tags1,tags2" | ||
,TRUE,youtube video @RTHK,youtube video list for RTHK,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@RTHK/videos,"tags1,tags2" | ||
,TRUE,youtube video @EggEggClubNewsChannel,youtube video list for EggEggClub,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@EggEggClubNewsChannel/videos,"tags1,tags2" | ||
,TRUE,youtube video @ChannelCHK,youtube video list for ChannelC,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@hkhoy/videos,"tags1,tags2" | ||
,TRUE,carousell_q coding,using google to search carousell with keyword coding,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/coding,carousell_q | ||
,TRUE,carousell_q javascript,using google to search carousell with keyword javascript,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/javascript,carousell_q | ||
,TRUE,carousell_q python,using google to search carousell with keyword python,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/python,carousell_q |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
uuid,paused,title,remarks,url,body,fetch_backend,method,link_to_site,tags | ||
,TRUE,jobsdb/search/testing-engineer-jobs,jobsdb/search/testing-engineer-jobs,http://192.168.10.21:13010/jobsdb_search_jobs,,system,POST,https://hk.jobsdb.com/testing-engineer-jobs,jobsdb_search | ||
,TRUE,jobsdb/search/software-engineer-jobs,jobsdb/search/software-engineer-jobs,http://192.168.10.21:13010/jobsdb_search_jobs,,system,POST,https://hk.jobsdb.com/software-engineer-jobs,jobsdb_search | ||
,TRUE,jobsdb/search/validation-engineer-jobs,jobsdb/search/validation-engineer-jobs,http://192.168.10.21:13010/jobsdb_search_jobs,,system,POST,https://hk.jobsdb.com/validation-engineer-jobs,jobsdb_search | ||
,TRUE,jable_tv/model/河北彩花,jable_tv/model/河北彩花,http://192.168.10.21:13010/jable_model,,system,POST,https://jable.tv/models/saika-kawakita/,jabletv_model | ||
,TRUE,missav/actresses/吉高寧寧,missav/actresses/吉高寧寧,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm42/actresses/吉高寧寧,missav | ||
,TRUE,missav/actresses/禦園もも,missav/actresses/禦園もも,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm1/actresses/禦園もも,missav | ||
,TRUE,missav/actresses/白坂みあん,missav/actresses/白坂みあん,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm1/actresses/白坂みあん,missav | ||
,TRUE,missav/actresses/明里紬,missav/actresses/明里紬,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm1/actresses/明里紬,missav | ||
,TRUE,missav/actresses/櫻空桃,missav/actresses/櫻空桃,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm1/actresses/櫻空桃,missav | ||
,TRUE,missav/actresses/禦園もも,missav/actresses/禦園もも,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm1/actresses/禦園もも,missav | ||
,TRUE,missav/actresses/禦園もも,missav/actresses/禦園もも,http://192.168.10.21:13010/missav_actress,,system,POST,https://missav.com/dm1/actresses/禦園もも,missav | ||
,TRUE,youtube video @hkhoy,youtube video list for hoytv,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@hkhoy/videos,"tags1,tags2" | ||
,TRUE,youtube video @RTHK,youtube video list for RTHK,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@RTHK/videos,"tags1,tags2" | ||
,TRUE,youtube video @EggEggClubNewsChannel,youtube video list for EggEggClub,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@EggEggClubNewsChannel/videos,"tags1,tags2" | ||
,TRUE,youtube video @ChannelCHK,youtube video list for ChannelC,http://192.168.10.21:13010/youtube_videos,,system,POST,https://www.youtube.com/@hkhoy/videos,"tags1,tags2" | ||
,TRUE,carousell_q cs,using google to search carousell with keyword cs,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/cs,carousell_q | ||
,TRUE,carousell_q excel,using google to search carousell with keyword excel,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/excel,carousell_q | ||
,TRUE,carousell_q it,using google to search carousell with keyword it,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/it,carousell_q | ||
,TRUE,carousell_q javascript,using google to search carousell with keyword javascript,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/javascript,carousell_q | ||
,TRUE,carousell_q programming,using google to search carousell with keyword programming,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/programming,carousell_q | ||
,TRUE,carousell_q python,using google to search carousell with keyword python,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/python,carousell_q | ||
,TRUE,carousell_q react,using google to search carousell with keyword react,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/react,carousell_q | ||
,TRUE,carousell_q vba,using google to search carousell with keyword vba,http://192.168.10.21:13010/carousell_q,,system,POST,https://carousell.com.hk/q/vba,carousell_q |
Oops, something went wrong.