diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..6880973 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,49 @@ +name: '4get CI' + +on: + workflow_dispatch: + pull_request: + push: + branches: + - '*' + paths-ignore: + - 'README.md' + - 'docker-compose.yaml' + - '.gitignore' + - 'docs/**' + +jobs: + build: + runs-on: docker + + steps: + - uses: actions/checkout@v4 + name: Checkout 4get repository + + - uses: docker/setup-buildx-action@v3 + name: Setup Docker BuildX system + + - name: Login to Docker Container Registry + uses: docker/login-action@v3 + with: + registry: git.lolcat.ca + username: ${{ secrets.USERNAME }} + password: ${{ secrets.TOKEN }} + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: git.lolcat.ca/ckg/4get + tags: | + type=sha,format=short,prefix={{date 'YYYY.MM.DD'}}-,enable=${{ github.ref == format('refs/heads/{0}', 'master') }} + type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'master') }} + + - uses: docker/build-push-action@v6 + name: Build images + with: + context: . + file: Dockerfile + tags: ${{ steps.meta.outputs.tags }} + platforms: linux/amd64 + push: true diff --git a/data/config.php b/data/config.php index efae706..78bd82d 100644 --- a/data/config.php +++ b/data/config.php @@ -3,34 +3,34 @@ class config{ // Welcome to the 4get configuration file // When updating your instance, please make sure this file isn't missing // any parameters. - + // 4get version. Please keep this updated const VERSION = 8; - + // Will be shown pretty much everywhere. - const SERVER_NAME = "4get"; - + const SERVER_NAME = "RETARD"; + // Will be shown in tag on home page const SERVER_SHORT_DESCRIPTION = "4get is a proxy search engine that doesn't suck."; - + // Will be shown in server list ping (null for no description) const SERVER_LONG_DESCRIPTION = null; - + // Add your own themes in "static/themes". Set to "Dark" for default theme. // Eg. To use "static/themes/Cream.css", specify "Cream". const DEFAULT_THEME = "Dark"; - + // Enable the API? const API_ENABLED = true; - + // // BOT PROTECTION // - + // 0 = disabled, 1 = ask for image captcha, @TODO: 2 = invite only (users needs a pass) // VERY useful against a targetted attack const BOT_PROTECTION = 0; - + // if BOT_PROTECTION is set to 1, specify the available datasets here // images should be named from 1.png to X.png, and be 100x100 in size // Eg. data/captcha/birds/1.png up to 2263.png @@ -40,11 +40,11 @@ class config{ //["fumo_plushies", 1006], //["minecraft", 848] ]; - + // If this regex expression matches on the user agent, it blocks the request // Not useful at all against a targetted attack const HEADER_REGEX = '/bot|wget|curl|python-requests|scrapy|go-http-client|ruby|yahoo|spider|qwant/i'; - + // Block clients who present any of the following headers in their request (SPECIFY IN !!lowercase!!) // Eg: ["x-forwarded-for", "x-via", "forwarded-for", "via"]; // Useful for blocking *some* proxies used for botting @@ -62,7 +62,7 @@ class config{ //"remote-addr", //"via" ]; - + // Block SSL ciphers used by CLI tools used for botting // Basically a primitive version of Cloudflare's browser integrity check // ** If curl can still access the site (with spoofed headers), please make sure you use the new apache2 config ** @@ -70,12 +70,12 @@ class config{ const DISALLOWED_SSL = [ // "TLS_AES_256_GCM_SHA384" // used by WGET and CURL ]; - + // Maximal number of searches per captcha key/pass issued. Counter gets // reset on every APCU cache clear (should happen once a day). // Only useful when BOT_PROTECTION is NOT set to 0 const MAX_SEARCHES = 100; - + // List of domains that point to your servers. Include your tor/i2p // addresses here! Must be a valid URL. Won't affect links placed on // the homepage. @@ -83,7 +83,7 @@ class config{ //"https://4get.alt-tld", //"http://4getwebfrq5zr4sxugk6htxvawqehxtdgjrbcn2oslllcol2vepa23yd.onion" ]; - + // Known 4get instances. MUST use the https protocol if your instance uses // it. Is used to generate a distributed list of instances. // To appear in the list of an instance, contact the host and if everyone added @@ -116,11 +116,11 @@ class config{ "https://4get.sudovanilla.org", "https://search.mint.lgbt" ]; - + // Default user agent to use for scraper requests. Sometimes ignored to get specific webpages // Changing this might break things. const USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0"; - + // Proxy pool assignments for each scraper // false = Use server's raw IP // string = will load a proxy list from data/proxies @@ -153,14 +153,14 @@ class config{ const PROXY_YANDEX_W = false; // yandex web const PROXY_YANDEX_I = false; // yandex images const PROXY_YANDEX_V = false; // yandex videos - + // // Scraper-specific parameters // - + // GOOGLE CSE const GOOGLE_CX_ENDPOINT = "d4e68b99b876541f0"; - + // MARGINALIA // Use "null" to default out to HTML scraping OR specify a string to // use the API (Eg: "public"). API has less filters.