forked from lolcat/4get
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			91a792d169
			...
			fuck
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 75e8d44c13 | |||
| f74c3c1a04 | 
							
								
								
									
										49
									
								
								.gitea/workflows/ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								.gitea/workflows/ci.yml
									
									
									
									
									
										Normal 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 | ||||||
| @@ -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. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user