mirror of
https://git.lolcat.ca/lolcat/4get.git
synced 2024-11-08 17:43:07 -05:00
Compare commits
No commits in common. "0b68d6b2a9928d1b9dae389fbf5b95056e678be0" and "4e039f709571c50895501f1422659d102bef6b16" have entirely different histories.
0b68d6b2a9
...
4e039f7095
8 changed files with 23 additions and 216 deletions
|
@ -36,9 +36,9 @@ class config{
|
||||||
// Eg. data/captcha/birds/1.png up to 2263.png
|
// Eg. data/captcha/birds/1.png up to 2263.png
|
||||||
const CAPTCHA_DATASET = [
|
const CAPTCHA_DATASET = [
|
||||||
// example:
|
// example:
|
||||||
//["birds", 2263],
|
// ["birds", 2263],
|
||||||
//["fumo_plushies", 1006],
|
// ["fumo_plushies", 1006],
|
||||||
//["minecraft", 848]
|
// ["minecraft", 848]
|
||||||
];
|
];
|
||||||
|
|
||||||
// If this regex expression matches on the user agent, it blocks the request
|
// If this regex expression matches on the user agent, it blocks the request
|
||||||
|
@ -49,18 +49,18 @@ class config{
|
||||||
// Eg: ["x-forwarded-for", "x-via", "forwarded-for", "via"];
|
// Eg: ["x-forwarded-for", "x-via", "forwarded-for", "via"];
|
||||||
// Useful for blocking *some* proxies used for botting
|
// Useful for blocking *some* proxies used for botting
|
||||||
const FILTERED_HEADER_KEYS = [
|
const FILTERED_HEADER_KEYS = [
|
||||||
//"x-forwarded-for",
|
"x-forwarded-for",
|
||||||
//"x-cluster-client-ip",
|
"x-cluster-client-ip",
|
||||||
//"x-client-ip",
|
"x-client-ip",
|
||||||
//"x-real-ip",
|
"x-real-ip",
|
||||||
//"client-ip",
|
"client-ip",
|
||||||
//"real-ip",
|
"real-ip",
|
||||||
//"forwarded-for",
|
"forwarded-for",
|
||||||
//"forwarded-for-ip",
|
"forwarded-for-ip",
|
||||||
//"forwarded",
|
"forwarded",
|
||||||
//"proxy-connection",
|
"proxy-connection",
|
||||||
//"remote-addr",
|
"remote-addr",
|
||||||
//"via"
|
"via"
|
||||||
];
|
];
|
||||||
|
|
||||||
// Maximal number of searches per captcha key/pass issued. Counter gets
|
// Maximal number of searches per captcha key/pass issued. Counter gets
|
||||||
|
@ -105,8 +105,7 @@ class config{
|
||||||
"https://4get.lol",
|
"https://4get.lol",
|
||||||
"https://4get.ch",
|
"https://4get.ch",
|
||||||
"https://4get.edmateo.site",
|
"https://4get.edmateo.site",
|
||||||
"https://4get.sudovanilla.org",
|
"https://4get.sudovanilla.org"
|
||||||
"https://search.mint.lgbt"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// Default user agent to use for scraper requests. Sometimes ignored to get specific webpages
|
// Default user agent to use for scraper requests. Sometimes ignored to get specific webpages
|
||||||
|
|
|
@ -6,6 +6,7 @@ services:
|
||||||
image: luuul/4get:latest
|
image: luuul/4get:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
|
- FOURGET_VERSION=6
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
- FOURGET_SERVER_NAME=4get.ca
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
|
|
|
@ -66,10 +66,10 @@ foreach(($merged_config) as $key => $val){
|
||||||
// Handle case when original type of field is array and there is a type mismatch when a comma separted string is passed,
|
// Handle case when original type of field is array and there is a type mismatch when a comma separted string is passed,
|
||||||
// then split on comma if string (and not numeric, boolean, null, etc)
|
// then split on comma if string (and not numeric, boolean, null, etc)
|
||||||
//
|
//
|
||||||
// except in the case where the inital value in default config is null or boolean. Assuming null and boolean
|
// except in the case where the inital value in default config is null. Assuming null
|
||||||
// in default config will be never be assigned an array
|
// in default config will be never be assigned an array
|
||||||
|
|
||||||
if(gettype($from_config[$key]) != gettype($val) && !is_numeric($val) && !is_null($from_config[$key]) && gettype($from_config[$key]) != "boolean") {
|
if(gettype($from_config[$key]) != gettype($val) && !is_numeric($val) && !is_null($from_config[$key])) {
|
||||||
$stored_value = explode(",", $val);
|
$stored_value = explode(",", $val);
|
||||||
}
|
}
|
||||||
$output = $output . "\tconst " . $key . " = " . type_to_string($stored_value) . ";\n";
|
$output = $output . "\tconst " . $key . " = " . type_to_string($stored_value) . ";\n";
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
FROM alpine:edge
|
|
||||||
|
|
||||||
RUN apk add --no-cache curl tor
|
|
||||||
|
|
||||||
EXPOSE 9050
|
|
||||||
|
|
||||||
HEALTHCHECK --interval=60s --timeout=15s --start-period=20s \
|
|
||||||
CMD curl -x socks5h://127.0.0.1:9050 'https://check.torproject.org/api/ip' | grep -qm1 -E '"IsTor"\s*:\s*true'
|
|
||||||
|
|
||||||
|
|
||||||
# default owner is tor, but running as root to avoid docker volume mount issue
|
|
||||||
RUN chown -R root:root /var/lib/tor
|
|
||||||
|
|
||||||
VOLUME ["/var/lib/tor/4get"]
|
|
||||||
|
|
||||||
COPY ./torrc /etc/tor/torrc
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/tor"]
|
|
|
@ -1 +0,0 @@
|
||||||
SocksPort 0.0.0.0:9050
|
|
|
@ -72,6 +72,7 @@ services:
|
||||||
image: luuul/4get:latest
|
image: luuul/4get:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
|
- FOURGET_VERSION=6
|
||||||
- FOURGET_PROTO=http
|
- FOURGET_PROTO=http
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
- FOURGET_SERVER_NAME=4get.ca
|
||||||
|
|
||||||
|
@ -90,6 +91,7 @@ services:
|
||||||
image: luuul/4get:latest
|
image: luuul/4get:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
|
- FOURGET_VERSION=6
|
||||||
- FOURGET_PROTO=https
|
- FOURGET_PROTO=https
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
- FOURGET_SERVER_NAME=4get.ca
|
||||||
|
|
||||||
|
@ -115,6 +117,7 @@ services:
|
||||||
image: luuul/4get:latest
|
image: luuul/4get:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
|
- FOURGET_VERSION=6
|
||||||
- FOURGET_PROTO=http
|
- FOURGET_PROTO=http
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
- FOURGET_SERVER_NAME=4get.ca
|
||||||
- FOURGET_BOT_PROTECTION=1
|
- FOURGET_BOT_PROTECTION=1
|
||||||
|
@ -137,6 +140,7 @@ services:
|
||||||
image: luuul/4get:latest
|
image: luuul/4get:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
|
- FOURGET_VERSION=6
|
||||||
- FOURGET_PROTO=http
|
- FOURGET_PROTO=http
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
- FOURGET_SERVER_NAME=4get.ca
|
||||||
|
|
||||||
|
@ -146,7 +150,3 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./banners:/var/www/html/4get/banner
|
- ./banners:/var/www/html/4get/banner
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Tor
|
|
||||||
|
|
||||||
You can route incoming and outgoing requests through tor by following [docker tor documentation](./docker_tor.md)
|
|
||||||
|
|
|
@ -1,174 +0,0 @@
|
||||||
#### Overview
|
|
||||||
|
|
||||||
This guide will walk you through using 4get in docker with tor running in
|
|
||||||
another container. This guide covers how to make outgoing and incoming traffic
|
|
||||||
go through tor.
|
|
||||||
|
|
||||||
|
|
||||||
##### Starting tor
|
|
||||||
|
|
||||||
This guide will use `luuul/tor` which is a simple image that installs and starts
|
|
||||||
tor in an alpine container SocksPort set to 0.0.0.0:9050
|
|
||||||
|
|
||||||
For additional configuration you can mount your own `torrc` file to `/etc/tor/torrc`
|
|
||||||
Remember to set `SocksPort 0.0.0.0:9050` otherwise communication between containers won't work.
|
|
||||||
|
|
||||||
You will see this warning `Other people on the Internet might find your computer and use it as an open proxy. Please don't allow this unless you have a good reason.`
|
|
||||||
|
|
||||||
This setting is in the torrc of this `luuul/tor` image. If you mount your own torrc then that will be read instead.
|
|
||||||
|
|
||||||
If you use `SocksPort 0.0.0.0:9050` anywhere make sure it is inaccessible to outside world.
|
|
||||||
As long as you don't publish this port (-p or --publish) it shouldn't be accessible to outside world.
|
|
||||||
|
|
||||||
|
|
||||||
Tor always starts a socks5 proxy on port 9050 by default.
|
|
||||||
|
|
||||||
|
|
||||||
##### Route outgoing requests over tor
|
|
||||||
|
|
||||||
create a folder named `proxies` and create a file in that folder named `onion.txt`
|
|
||||||
this folder will be mounted to `/var/www/html/4get/data/proxies/`
|
|
||||||
|
|
||||||
directory structure
|
|
||||||
|
|
||||||
```
|
|
||||||
proxies/
|
|
||||||
onion.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
put the following content into `onion.txt`
|
|
||||||
More information about this file available in [proxy documentation](./configure.md#Proxies).
|
|
||||||
|
|
||||||
```
|
|
||||||
# proxies/onion.txt
|
|
||||||
# Note: "tor" is the service name of luuul/tor in docker-compose.yaml
|
|
||||||
socks5:tor:9050::
|
|
||||||
```
|
|
||||||
|
|
||||||
create a file named `docker-compose.yaml` with the following content
|
|
||||||
This docker compose file will run `luuul/tor` and `luuul/4get` and configure 4get to load `proxies/onion.txt` for outgoing requests.
|
|
||||||
|
|
||||||
If you mount your own torrc make sure you include `SocksPort 0.0.0.0:9050`
|
|
||||||
Read the warning in [starting tor](./docker_tor.md#Starting-tor)!
|
|
||||||
|
|
||||||
```
|
|
||||||
# docker-compose.yaml
|
|
||||||
version: "3.7"
|
|
||||||
|
|
||||||
services:
|
|
||||||
tor:
|
|
||||||
image: luuul/tor:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
# Warning: Do not publish port 9050
|
|
||||||
|
|
||||||
fourget:
|
|
||||||
image: luuul/4get:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- FOURGET_PROTO=http
|
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
|
||||||
# loads proxies/onion.txt
|
|
||||||
- FOURGET_PROXY_DDG="onion"
|
|
||||||
- FOURGET_PROXY_BRAVE="onion"
|
|
||||||
- FOURGET_PROXY_FB="onion"
|
|
||||||
- FOURGET_PROXY_GOOGLE="onion"
|
|
||||||
- FOURGET_PROXY_QWANT="onion"
|
|
||||||
- FOURGET_PROXY_MARGINALIA="onion"
|
|
||||||
- FOURGET_PROXY_MOJEEK="onion"
|
|
||||||
- FOURGET_PROXY_SC="onion"
|
|
||||||
- FOURGET_PROXY_SPOTIFY="onion"
|
|
||||||
- FOURGET_PROXY_WIBY="onion"
|
|
||||||
- FOURGET_PROXY_CURLIE="onion"
|
|
||||||
- FOURGET_PROXY_YT="onion"
|
|
||||||
- FOURGET_PROXY_YEP="onion"
|
|
||||||
- FOURGET_PROXY_PINTEREST="onion"
|
|
||||||
- FOURGET_PROXY_SEZNAM="onion"
|
|
||||||
- FOURGET_PROXY_NAVER="onion"
|
|
||||||
- FOURGET_PROXY_GREPPR="onion"
|
|
||||||
- FOURGET_PROXY_CROWDVIEW="onion"
|
|
||||||
- FOURGET_PROXY_MWMBL="onion"
|
|
||||||
- FOURGET_PROXY_FTM="onion"
|
|
||||||
- FOURGET_PROXY_IMGUR="onion"
|
|
||||||
- FOURGET_PROXY_YANDEX_W="onion"
|
|
||||||
- FOURGET_PROXY_YANDEX_I="onion"
|
|
||||||
- FOURGET_PROXY_YANDEX_V="onion"
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- "80:80"
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- tor
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- ./proxies/:/var/www/html/4get/data/proxies/
|
|
||||||
```
|
|
||||||
|
|
||||||
You can now start both containers with `docker compose up -d`
|
|
||||||
|
|
||||||
|
|
||||||
#### Route incoming requests over tor
|
|
||||||
|
|
||||||
This will create a hidden service that will be accessible via an onion link.
|
|
||||||
|
|
||||||
1. create a file named `torrc` with the following content
|
|
||||||
|
|
||||||
```
|
|
||||||
# torrc
|
|
||||||
User root
|
|
||||||
|
|
||||||
HiddenServiceDir /var/lib/tor/4get/
|
|
||||||
HiddenServicePort 80 fourget:80
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
2. create a folder named "4get" which will contain your hidden service keys.
|
|
||||||
|
|
||||||
Make sure it has permission `600` otherwise you will get an error
|
|
||||||
|
|
||||||
> Permissions on directory /var/lib/tor/4get/ are too permissive.
|
|
||||||
|
|
||||||
you can change permissions with
|
|
||||||
|
|
||||||
```
|
|
||||||
chmod 600 4get
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Create a folder named "data" that will contain your DataDirectory
|
|
||||||
|
|
||||||
|
|
||||||
4. create a `docker-compose.yaml` with the following content
|
|
||||||
|
|
||||||
```
|
|
||||||
# docker-compose.yaml
|
|
||||||
version: "3.7"
|
|
||||||
|
|
||||||
services:
|
|
||||||
fourget:
|
|
||||||
image: luuul/4get:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- FOURGET_PROTO=http
|
|
||||||
- FOURGET_SERVER_NAME=4get.ca
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- tor
|
|
||||||
|
|
||||||
tor:
|
|
||||||
image: luuul/tor:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- ./torrc:/etc/tor/torrc
|
|
||||||
- ./4get:/var/lib/tor/4get
|
|
||||||
- ./data:/root/.tor
|
|
||||||
```
|
|
||||||
|
|
||||||
5. You can now start both with `docker compose up -d`
|
|
||||||
|
|
||||||
6. print onion hostname with
|
|
||||||
|
|
||||||
```
|
|
||||||
docker exec `docker ps -qf ancestor=luuul/tor:latest` sh -c "cat /var/lib/tor/4get/hostname"
|
|
||||||
```
|
|
||||||
|
|
||||||
or `cat ./4get/hostname`
|
|
BIN
static/404.png
BIN
static/404.png
Binary file not shown.
Before Width: | Height: | Size: 216 B |
Loading…
Reference in a new issue