Skip to content

Commit b3c09ad

Browse files
authored
Merge pull request #1279 from benbusby/updates
Updates
2 parents c96f5ad + a2ec4e9 commit b3c09ad

File tree

14 files changed

+57
-39
lines changed

14 files changed

+57
-39
lines changed

.github/workflows/buildx.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ jobs:
2020
- name: Wait for tests to succeed
2121
if: ${{ github.event.workflow_run.conclusion != 'success' && startsWith(github.ref, 'refs/tags') != true }}
2222
run: exit 1
23+
- name: Debug workflow context
24+
run: |
25+
echo "Event name: ${{ github.event_name }}"
26+
echo "Ref: ${{ github.ref }}"
27+
echo "Actor: ${{ github.actor }}"
28+
echo "Branch: ${{ github.event.workflow_run.head_branch }}"
29+
echo "Conclusion: ${{ github.event.workflow_run.conclusion }}"
2330
- name: checkout code
2431
uses: actions/checkout@v4
2532
- name: Set up QEMU

.github/workflows/docker_main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
if: ${{ github.event.workflow_run.conclusion == 'success' }}
1515
steps:
1616
- name: checkout code
17-
uses: actions/checkout@v2
17+
uses: actions/checkout@v4
1818
- name: build and test (docker)
1919
run: |
2020
docker build --tag whoogle-search:test .

Dockerfile

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
1-
FROM python:3.12.6-alpine3.20 AS builder
1+
# NOTE: ARMv7 support has been dropped due to lack of pre-built cryptography wheels for Alpine/musl.
2+
# To restore ARMv7 support for local builds:
3+
# 1. Change requirements.txt:
4+
# cryptography==3.3.2; platform_machine == 'armv7l'
5+
# cryptography==46.0.1; platform_machine != 'armv7l'
6+
# pyOpenSSL==19.1.0; platform_machine == 'armv7l'
7+
# pyOpenSSL==25.3.0; platform_machine != 'armv7l'
8+
# 2. Add linux/arm/v7 to --platform flag when building:
9+
# docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64 .
10+
11+
FROM python:3.12-alpine3.22 AS builder
212

313
RUN apk --no-cache add \
414
build-base \
@@ -12,13 +22,16 @@ COPY requirements.txt .
1222
RUN pip install --upgrade pip
1323
RUN pip install --prefix /install --no-warn-script-location --no-cache-dir -r requirements.txt
1424

15-
FROM python:3.12.6-alpine3.20
25+
FROM python:3.12-alpine3.22
1626

17-
RUN apk add --no-cache tor curl openrc libstdc++
27+
# Remove bridge package to avoid CVEs (not needed for Docker containers)
28+
RUN apk add --no-cache --no-scripts tor curl openrc libstdc++ && \
29+
apk del --no-cache bridge || true
1830
# git go //for obfs4proxy
1931
# libcurl4-openssl-dev
20-
21-
RUN apk --no-cache upgrade
32+
RUN pip install --upgrade pip
33+
RUN apk --no-cache upgrade && \
34+
apk del --no-cache --rdepends bridge || true
2235

2336
# uncomment to build obfs4proxy
2437
# RUN git clone https://gitlab.com/yawning/obfs4.git

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
>works -- Whoogle requests the JavaScript-free search results, then filters out garbage from the results page and proxies all external content for the user.
55
>
66
>This is possibly a breaking change that may mean the end for Whoogle. We'll continue fighting back and releasing workarounds until all workarounds are
7-
>exhausted or a better method is found.
7+
>exhausted or a better method is found. If you know of a better way, please review and comment in our Way Forward Discussion
88
99
___
1010

@@ -88,6 +88,17 @@ Contents
8888
<sup>***If deployed to a remote server, or configured to send requests through a VPN, Tor, proxy, etc.</sup>
8989

9090
## Install
91+
92+
### Supported Platforms
93+
Official Docker images are built for:
94+
- **linux/amd64** (x86_64)
95+
- **linux/arm64** (ARM 64-bit, Raspberry Pi 3/4/5, Apple Silicon)
96+
97+
**Note**: ARMv7 support (32-bit ARM, Raspberry Pi 2) was dropped in v1.2.0 due to incompatibility with modern security libraries on Alpine Linux. Users with ARMv7 devices can either:
98+
- Use an older version (v1.1.x or earlier)
99+
- Build locally with pinned dependencies (see notes in Dockerfile)
100+
- Upgrade to a 64-bit OS if hardware supports it (Raspberry Pi 3+)
101+
91102
There are a few different ways to begin using the app, depending on your preferences:
92103

93104
___
@@ -700,7 +711,6 @@ Instead of using auto-generated Opera UA strings, you can provide your own list
700711
```
701712
Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.13337/22.478; U; en) Presto/2.4.15 Version/10.00
702713
Opera/9.80 (Android; Linux; Opera Mobi/498; U; en) Presto/2.12.423 Version/10.1
703-
Opera/9.30 (Nintendo Wii; U; ; 3642; en)
704714
```
705715

706716
2. Set the `WHOOGLE_UA_LIST_FILE` environment variable to point to your file:

app/models/config.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ def __init__(self, **kwargs):
8181
self.tbs = os.getenv('WHOOGLE_CONFIG_TIME_PERIOD', '')
8282
self.theme = os.getenv('WHOOGLE_CONFIG_THEME', 'system')
8383
self.safe = read_config_bool('WHOOGLE_CONFIG_SAFE')
84-
self.dark = read_config_bool('WHOOGLE_CONFIG_DARK') # deprecated
8584
self.alts = read_config_bool('WHOOGLE_CONFIG_ALTS')
8685
self.nojs = read_config_bool('WHOOGLE_CONFIG_NOJS')
8786
self.tor = read_config_bool('WHOOGLE_CONFIG_TOR')

app/routes.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,7 @@ def index():
217217
translation=app.config['TRANSLATIONS'][
218218
g.user_config.get_localization_lang()
219219
],
220-
logo=render_template(
221-
'logo.html',
222-
dark=g.user_config.dark),
220+
logo=render_template('logo.html'),
223221
config_disabled=(
224222
app.config['CONFIG_DISABLE'] or
225223
not valid_user_session(session)),
@@ -581,7 +579,7 @@ def search():
581579
languages=app.config['LANGUAGES'],
582580
countries=app.config['COUNTRIES'],
583581
time_periods=app.config['TIME_PERIODS'],
584-
logo=render_template('logo.html', dark=g.user_config.dark),
582+
logo=render_template('logo.html'),
585583
query=urlparse.unquote(query),
586584
search_type=search_util.search_type,
587585
mobile=g.user_request.mobile,

app/templates/display.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@
2626
{% else %}
2727
<link rel="stylesheet" href="{{ cb_url(config.theme + '-theme.css') }}"/>
2828
{% endif %}
29-
{% else %}
30-
<link rel="stylesheet" href="{{ cb_url(('dark' if config.dark else 'light') + '-theme.css') }}"/>
3129
{% endif %}
32-
<style>{{ config.style }}</style>
30+
{% if config.style %}
31+
<style>
32+
{{ config.style }}
33+
</style>
34+
{% endif %}
3335
<title>{{ clean_query(query) }} - Whoogle Search</title>
3436
</head>
3537
<body>

app/templates/error.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
{% else %}
88
<link rel="stylesheet" href="{{ cb_url(config.theme + '-theme.css') }}"/>
99
{% endif %}
10-
{% else %}
11-
<link rel="stylesheet" href="{{ cb_url(('dark' if config.dark else 'light') + '-theme.css') }}"/>
1210
{% endif %}
1311
{% if bundle_static() %}
1412
<link rel="stylesheet" href="/{{ cb_url('bundle.css') }}">

app/templates/index.html

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@
4141
{% else %}
4242
<link rel="stylesheet" href="{{ cb_url(config.theme + '-theme.css') }}"/>
4343
{% endif %}
44-
{% else %}
45-
<link rel="stylesheet" href="{{ cb_url(('dark' if config.dark else 'light') + '-theme.css') }}"/>
4644
{% endif %}
4745
{% if not bundle_static() %}
4846
<link rel="stylesheet" href="{{ cb_url('main.css') }}">
@@ -204,10 +202,6 @@
204202
</select>
205203
</div>
206204
<!-- DEPRECATED -->
207-
<!--<div class="config-div config-div-dark">-->
208-
<!--<label for="config-dark">{{ translation['config-dark'] }}: </label>-->
209-
<!--<input type="checkbox" name="dark" id="config-dark" {{ 'checked' if config.dark else '' }}>-->
210-
<!--</div>-->
211205
<div class="config-div config-div-safe">
212206
<label for="config-safe">{{ translation['config-safe'] }}: </label>
213207
<input type="checkbox" name="safe" id="config-safe" {{ 'checked' if config.safe else '' }}>

app/version.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import os
22

3-
optional_dev_tag = ''
3+
optional_dev_tag = '-update-testing'
44
if os.getenv('DEV_BUILD'):
55
optional_dev_tag = '.dev' + os.getenv('DEV_BUILD')
66

7-
__version__ = '1.1.2' + optional_dev_tag
7+
__version__ = '1.2.0' + optional_dev_tag
88

0 commit comments

Comments
 (0)