config.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. class config{
  3. // Welcome to the 4get configuration file
  4. // When updating your instance, please make sure this file isn't missing
  5. // any parameters.
  6. // 4get version. Please keep this updated
  7. const VERSION = 7;
  8. // Will be shown pretty much everywhere.
  9. const SERVER_NAME = "4get";
  10. // Will be shown in <meta> tag on home page
  11. const SERVER_SHORT_DESCRIPTION = "They live in our walls!";
  12. // Will be shown in server list ping (null for no description)
  13. const SERVER_LONG_DESCRIPTION = null;
  14. // Add your own themes in "static/themes". Set to "Dark" for default theme.
  15. // Eg. To use "static/themes/Cream.css", specify "Cream".
  16. const DEFAULT_THEME = "Dark";
  17. // Enable the API?
  18. const API_ENABLED = true;
  19. //
  20. // BOT PROTECTION
  21. //
  22. // 0 = disabled, 1 = ask for image captcha, @TODO: 2 = invite only (users needs a pass)
  23. // VERY useful against a targetted attack
  24. const BOT_PROTECTION = 0;
  25. // if BOT_PROTECTION is set to 1, specify the available datasets here
  26. // images should be named from 1.png to X.png, and be 100x100 in size
  27. // Eg. data/captcha/birds/1.png up to 2263.png
  28. const CAPTCHA_DATASET = [
  29. // example:
  30. // ["birds", 2263],
  31. // ["fumo_plushies", 1006],
  32. // ["minecraft", 848]
  33. ];
  34. // If this regex expression matches on the user agent, it blocks the request
  35. // Not useful at all against a targetted attack
  36. const HEADER_REGEX = '/bot|wget|curl|python-requests|scrapy|go-http-client|ruby|yahoo|spider/i';
  37. // Block clients who present any of the following headers in their request (SPECIFY IN !!lowercase!!)
  38. // Eg: ["x-forwarded-for", "x-via", "forwarded-for", "via"];
  39. // Useful for blocking *some* proxies used for botting
  40. const FILTERED_HEADER_KEYS = [
  41. "x-forwarded-for",
  42. "x-via",
  43. "forwarded-for",
  44. "via"
  45. ];
  46. // @TODO: Portscan the user for open proxies before allowing a connection, block user if any are found
  47. // Requires the nmap package
  48. const NMAP_PROXY_CHECK = false;
  49. // @TODO: Make IP blacklist public under /api/v1/blacklist endpoint ?
  50. const PUBLIC_IP_BLACKLIST = true;
  51. // Maximal number of searches per captcha key/pass issued. Counter gets
  52. // reset on every APCU cache clear (should happen once a day).
  53. // Only useful when BOT_PROTECTION is NOT set to 0
  54. const MAX_SEARCHES = 100;
  55. // List of domains that point to your servers. Include your tor/i2p
  56. // addresses here! Must be a valid URL. Won't affect links placed on
  57. // the homepage.
  58. const ALT_ADDRESSES = [
  59. //"https://4get.alt-tld",
  60. //"http://4getwebfrq5zr4sxugk6htxvawqehxtdgjrbcn2oslllcol2vepa23yd.onion"
  61. ];
  62. // Known 4get instances. MUST use the https protocol if your instance uses
  63. // it. Is used to generate a distributed list of instances.
  64. // To appear in the list of an instance, contact the host and if everyone added
  65. // eachother your serber should appear everywhere.
  66. const INSTANCES = [
  67. "https://4get.ca",
  68. "https://4get.zzls.xyz",
  69. "https://4getus.zzls.xyz",
  70. "https://4get.silly.computer",
  71. "https://4get.konakona.moe",
  72. "https://4get.lvkaszus.pl",
  73. "https://4g.ggtyler.dev",
  74. "https://4get.perennialte.ch",
  75. "https://4get.sijh.net",
  76. "https://4get.hbubli.cc",
  77. "https://4get.plunked.party",
  78. "https://4get.seitan-ayoub.lol",
  79. "https://4get.etenie.pl",
  80. "https://4get.lunar.icu",
  81. "https://4get.dcs0.hu",
  82. "https://4get.kizuki.lol",
  83. "https://4get.psily.garden",
  84. "https://search.milivojevic.in.rs",
  85. "https://4get.snine.nl",
  86. "https://4get.datura.network",
  87. "https://4get.neco.lol"
  88. ];
  89. // Default user agent to use for scraper requests. Sometimes ignored to get specific webpages
  90. // Changing this might break things.
  91. const USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0";
  92. // Proxy pool assignments for each scraper
  93. // false = Use server's raw IP
  94. // string = will load a proxy list from data/proxies
  95. // Eg. "onion" will load data/proxies/onion.txt
  96. const PROXY_DDG = false; // duckduckgo
  97. const PROXY_BRAVE = false;
  98. const PROXY_FB = false; // facebook
  99. const PROXY_GOOGLE = false;
  100. const PROXY_MARGINALIA = false;
  101. const PROXY_MOJEEK = false;
  102. const PROXY_SC = false; // soundcloud
  103. const PROXY_SPOTIFY = false;
  104. const PROXY_WIBY = false;
  105. const PROXY_CURLIE = false;
  106. const PROXY_YT = false; // youtube
  107. const PROXY_YEP = false;
  108. const PROXY_PINTEREST = false;
  109. const PROXY_SEZNAM = false;
  110. const PROXY_NAVER = false;
  111. const PROXY_CROWDVIEW = false;
  112. const PROXY_MWMBL = false;
  113. const PROXY_FTM = false; // findthatmeme
  114. const PROXY_IMGUR = false;
  115. const PROXY_YANDEX_W = false; // yandex web
  116. const PROXY_YANDEX_I = false; // yandex images
  117. const PROXY_YANDEX_V = false; // yandex videos
  118. //
  119. // Scraper-specific parameters
  120. //
  121. // SOUNDCLOUD
  122. // Get these parameters by making a search on soundcloud with network
  123. // tab open, then filter URLs using "search?q=". (No need to login)
  124. const SC_USER_ID = "447501-577662-794348-352629";
  125. const SC_CLIENT_TOKEN = "VNc62l3wxDWS0Ol62j5UYNc1gsZ3UXPv";
  126. // MARGINALIA
  127. // Get an API key by contacting the Marginalia.nu maintainer. The "public" key
  128. // works but is almost always rate-limited.
  129. const MARGINALIA_API_KEY = "public";
  130. }