Compare commits

...

2 Commits
master ... fuck

Author SHA1 Message Date
Fijxu 75e8d44c13
fuck
4get CI / build (push) Has been cancelled Details
4get CI / build (pull_request) Failing after 18s Details
2024-11-26 18:56:51 -03:00
Fijxu f74c3c1a04
Add actions support for 4get docker image builds
4get CI / build (push) Successful in 34s Details
2024-11-26 18:55:54 -03:00
2 changed files with 70 additions and 21 deletions

49
.gitea/workflows/ci.yml Normal file
View File

@ -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

View File

@ -3,34 +3,34 @@ class config{
// Welcome to the 4get configuration file // Welcome to the 4get configuration file
// When updating your instance, please make sure this file isn't missing // When updating your instance, please make sure this file isn't missing
// any parameters. // any parameters.
// 4get version. Please keep this updated // 4get version. Please keep this updated
const VERSION = 8; const VERSION = 8;
// Will be shown pretty much everywhere. // Will be shown pretty much everywhere.
const SERVER_NAME = "4get"; const SERVER_NAME = "RETARD";
// Will be shown in <meta> tag on home page // Will be shown in <meta> tag on home page
const SERVER_SHORT_DESCRIPTION = "4get is a proxy search engine that doesn't suck."; 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) // Will be shown in server list ping (null for no description)
const SERVER_LONG_DESCRIPTION = null; const SERVER_LONG_DESCRIPTION = null;
// Add your own themes in "static/themes". Set to "Dark" for default theme. // Add your own themes in "static/themes". Set to "Dark" for default theme.
// Eg. To use "static/themes/Cream.css", specify "Cream". // Eg. To use "static/themes/Cream.css", specify "Cream".
const DEFAULT_THEME = "Dark"; const DEFAULT_THEME = "Dark";
// Enable the API? // Enable the API?
const API_ENABLED = true; const API_ENABLED = true;
// //
// BOT PROTECTION // BOT PROTECTION
// //
// 0 = disabled, 1 = ask for image captcha, @TODO: 2 = invite only (users needs a pass) // 0 = disabled, 1 = ask for image captcha, @TODO: 2 = invite only (users needs a pass)
// VERY useful against a targetted attack // VERY useful against a targetted attack
const BOT_PROTECTION = 0; const BOT_PROTECTION = 0;
// if BOT_PROTECTION is set to 1, specify the available datasets here // 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 // 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 // Eg. data/captcha/birds/1.png up to 2263.png
@ -40,11 +40,11 @@ class config{
//["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
// Not useful at all against a targetted attack // 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'; 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!!) // Block clients who present any of the following headers in their request (SPECIFY IN !!lowercase!!)
// 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
@ -62,7 +62,7 @@ class config{
//"remote-addr", //"remote-addr",
//"via" //"via"
]; ];
// Block SSL ciphers used by CLI tools used for botting // Block SSL ciphers used by CLI tools used for botting
// Basically a primitive version of Cloudflare's browser integrity check // 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 ** // ** 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 = [ const DISALLOWED_SSL = [
// "TLS_AES_256_GCM_SHA384" // used by WGET and CURL // "TLS_AES_256_GCM_SHA384" // used by WGET and CURL
]; ];
// Maximal number of searches per captcha key/pass issued. Counter gets // Maximal number of searches per captcha key/pass issued. Counter gets
// reset on every APCU cache clear (should happen once a day). // reset on every APCU cache clear (should happen once a day).
// Only useful when BOT_PROTECTION is NOT set to 0 // Only useful when BOT_PROTECTION is NOT set to 0
const MAX_SEARCHES = 100; const MAX_SEARCHES = 100;
// List of domains that point to your servers. Include your tor/i2p // 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 // addresses here! Must be a valid URL. Won't affect links placed on
// the homepage. // the homepage.
@ -83,7 +83,7 @@ class config{
//"https://4get.alt-tld", //"https://4get.alt-tld",
//"http://4getwebfrq5zr4sxugk6htxvawqehxtdgjrbcn2oslllcol2vepa23yd.onion" //"http://4getwebfrq5zr4sxugk6htxvawqehxtdgjrbcn2oslllcol2vepa23yd.onion"
]; ];
// Known 4get instances. MUST use the https protocol if your instance uses // Known 4get instances. MUST use the https protocol if your instance uses
// it. Is used to generate a distributed list of instances. // 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 // 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://4get.sudovanilla.org",
"https://search.mint.lgbt" "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
// Changing this might break things. // 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"; 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 // Proxy pool assignments for each scraper
// false = Use server's raw IP // false = Use server's raw IP
// string = will load a proxy list from data/proxies // 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_W = false; // yandex web
const PROXY_YANDEX_I = false; // yandex images const PROXY_YANDEX_I = false; // yandex images
const PROXY_YANDEX_V = false; // yandex videos const PROXY_YANDEX_V = false; // yandex videos
// //
// Scraper-specific parameters // Scraper-specific parameters
// //
// GOOGLE CSE // GOOGLE CSE
const GOOGLE_CX_ENDPOINT = "d4e68b99b876541f0"; const GOOGLE_CX_ENDPOINT = "d4e68b99b876541f0";
// MARGINALIA // MARGINALIA
// Use "null" to default out to HTML scraping OR specify a string to // Use "null" to default out to HTML scraping OR specify a string to
// use the API (Eg: "public"). API has less filters. // use the API (Eg: "public"). API has less filters.