{"id":30664531,"url":"https://github.com/volkansah/x201-batconsole","last_synced_at":"2025-08-31T19:03:35.672Z","repository":{"id":304381257,"uuid":"1016842532","full_name":"VolkanSah/x201-BatConsole","owner":"VolkanSah","description":"🔧 Turn an old Lenovo X201 into a full-featured, hardened, AI-ready home server — or use it as a deep server guide for your $20,000 rig. This isn’t just a setup – it’s a statement for real devs, tinkerers \u0026 privacy freaks. 🦇","archived":false,"fork":false,"pushed_at":"2025-08-16T05:39:01.000Z","size":382,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"2025","last_synced_at":"2025-08-29T12:49:25.617Z","etag":null,"topics":["ai","apache2","darknet","development","do-it-yourself","guide","hardening","hidden-services","how-to","how-to-setup","huggingface","lamp","pandas","security","security-tools","server","tor","torch","ubuntu-server","wifi"],"latest_commit_sha":null,"homepage":"https://github.com/VolkanSah/x201-BatConsole","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VolkanSah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["volkansah"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"volansah","thanks_dev":null,"custom":null}},"created_at":"2025-07-09T15:56:08.000Z","updated_at":"2025-08-16T05:39:04.000Z","dependencies_parsed_at":"2025-07-12T19:28:42.698Z","dependency_job_id":"72f6a475-9f2e-4eca-a1bd-a572c9d39817","html_url":"https://github.com/VolkanSah/x201-BatConsole","commit_stats":null,"previous_names":["volkansah/x201-batconsole"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VolkanSah/x201-BatConsole","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolkanSah%2Fx201-BatConsole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolkanSah%2Fx201-BatConsole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolkanSah%2Fx201-BatConsole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolkanSah%2Fx201-BatConsole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VolkanSah","download_url":"https://codeload.github.com/VolkanSah/x201-BatConsole/tar.gz/refs/heads/2025","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolkanSah%2Fx201-BatConsole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273025829,"owners_count":25032842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","apache2","darknet","development","do-it-yourself","guide","hardening","hidden-services","how-to","how-to-setup","huggingface","lamp","pandas","security","security-tools","server","tor","torch","ubuntu-server","wifi"],"created_at":"2025-08-31T19:03:35.087Z","updated_at":"2025-08-31T19:03:35.665Z","avatar_url":"https://github.com/VolkanSah.png","language":null,"funding_links":["https://github.com/sponsors/volkansah","https://buymeacoffee.com/volansah"],"categories":[],"sub_categories":[],"readme":"# x201 – BatConsole Setup \u0026 Tuning Guide\n\n### What to do with an old Lenovo X201?\n\n**Turn it into a full-featured, hardened development and AI-ready home server with WIFI— all for less than $50.**\n\n-\u003e **Or just a cool server guide for your $20,000 beast.**\n\nThis isn’t some minimalistic “just get it running” script — this is the full deal:  \nA fully tuned server setup built for real-world devs, sysadmins, privacy nerds, and AI explorers.\n\nWhat’s included:\n- ⚙️ Full development stack (Apache, PHP, Python, and more)  \n- 🛡️ Security hardening (firewall, headers, sysctl, mod_security, fail2ban)  \n- 🤖 AI compatibility (for local models and LLM workflows)  \n- 📡 Wi-Fi-ready for mobile or indoor deployments  \n- 🧪 Testing tools \u0026 practical use cases  \n- ☕ And much more... you’ll need time — and a lot of coffee.\n\n\u003e This repo uses the legendary X201 M520 i5 (8GB Samsung RAM + a $20 Sandisk SSD Plus)  \n\u003e with original hardware and Nano Plastic Cooling paste. The results are incredible —  \n\u003e it even blows AI minds, because real-world speeds don’t match training data assumptions.  \n\u003e  \n\u003e If it runs *smoothly* on this 2010 laptop, it'll **crush it** on any modern machine.\n\n\u003e TL;DR: **Old laptop? Spare desktop? Forgotten NUC?**  \n\u003e This guide turns it into a reliable, secure, and powerful machine — no cloud required, no corporate fluff.\n\n---\n\n### 🔍 Extra Docs Included\n\nPrefer Debian? No problem — the setup is almost identical.  \nCurious about the software stack choices?\n\n- 👉 [`why-ubuntu.md`](why-ubuntu.md) – Why this project chose Ubuntu over Debian  \n- 👉 [`why-apache.md`](why-apache.md) – Why Apache is still the king for dynamic applications\n\n\n\n\n\n\n\n\n# Table of Contents\n\n- [1. System Optimization \u0026 Cooling](#️-1-system-optimization--cooling)\n  - [TLP for Battery \u0026 CPU Optimization](#tlp-for-battery--cpu-optimization)\n  - [Set CPU Governor](#set-cpu-governor)\n    - [Recommended (Permanent)](#recommended-permanent)\n  - [Monitor Temperatures](#monitor-temperatures)\n    - [Display CPU Frequency](#display-cpu-frequency)\n- [ 2. BIOS Tuning](#-2-bios-tuning)\n- [3. Fan \u0026 Stress Testing (optional)](#3-fan--stress-testing-optional)\n- [4. Wi-Fi Setup for Server Mode (2 options)](#-4-wi-fi-setup-for-server-mode-2-options)\n  - [WPA Configuration](#wpa-configuration)\n  - [Netplan Configuration](#netplan-configuration)\n    - [Set Permissions \u0026 Apply](#-set-permissions--apply)\n  - [Test Wi-Fi](#test-wi-fi)\n- [5. Basic Protection \u0026 Security](#-5-basic-protection--security)\n  - [Harden the System](#harden-the-system)\n  - [ClamAV (Antivirus)](#clamav-antivirus)\n  - [chkrootkit (Rootkit Detection)](#chkrootkit-rootkit-detection)\n  - [rkhunter (Advanced Rootkit Detection)](#rkhunter-advanced-rootkit-detection)\n  - [fail2ban (Brute-Force Protection)](#fail2ban-brute-force-protection)\n    - [Example SSH Protection](#example-ssh-protection)\n    - [Apply Config](#apply-config)\n- [Final Step](#-final-step)\n- [Cap-2: Web Server \u0026 Database Setup](cap-2.md)\n- [Cap-3: Performance \u0026 Resilience Test (Tor Edition)](cap-3.md)\n- [Cap-4: Security Audit Suite for Tor Edition Systems](cap-4.md)\n- [Cap-5: Server Hardening](cap-5.md)\n- [Why Ubuntu and not Debain?)](why-ubuntu.md)\n- [Why Apache and not NGINX?](why-apache.md)\n- [Support Note \u0026 Human Sanity Disclaimer™](#-support-note--human-sanity-disclaimer)\n- [Support](#support)\n- [License](#license)\n\n\nLet us start: First you must learn some basics\n\n## ⚙️ 1. System Optimization \u0026 Cooling\n\n### TLP for Battery \u0026 CPU Optimization\n\n```bash\nsudo apt install tlp tlp-rdw\nsudo systemctl enable tlp --now\n```\n\n###  Set CPU Governor\n\n```bash\nsudo apt install cpufrequtils\necho 'GOVERNOR=\"powersave\"' | sudo tee /etc/default/cpufrequtils\nsudo systemctl restart cpufrequtils\n```\n\n####  Recommended (Permanent)\n\n```bash\necho 'GOVERNOR=\"conservative\"' | sudo tee /etc/default/cpufrequtils\nsudo systemctl restart cpufrequtils\n```\n\n###  Monitor Temperatures\n\n```bash\nsudo apt install lm-sensors\nsudo sensors-detect\nwatch -n 1 \"sensors \u0026\u0026 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor\"\n```\n\n####  Display CPU Frequency\n\n```bash\nwatch -n 1 \"grep 'MHz' /proc/cpuinfo\"\n```\n\n\n\n## 🧬 2. BIOS Tuning\n\n* ✅ Enable **Hyper-Threading**\n* ❌ Disable **Intel Turbo Boost** (if overheating)\n* 🔧 Set fan control to **Performance** (if available)\n\n\n\n##  3. Fan \u0026 Stress Testing (optional)\n\n```bash\nsudo apt install fancontrol stress s-tui\n```\n\n\n## 📶 4. Wi-Fi Setup for Server Mode (2 options)\n\n###  WPA Configuration (`/etc/wpa_supplicant/wpa_supplicant.conf`)\n\n```conf\nctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\nupdate_config=1\ncountry=DE\n\nnetwork={\n    ssid=\"YourNetworkName\"\n    psk=\"YourPassword\"\n    key_mgmt=WPA-PSK\n}\n```\n\n###  Netplan Configuration (`/etc/netplan/01-netcfg.yaml`)\n\n```yaml\nnetwork:\n  version: 2\n  renderer: networkd\n  wifis:\n    wlp2s0:\n      dhcp4: true\n      access-points:\n        \"YourNetworkName\":\n          password: \"YourPassword\"\n```\n\n#### 🔒 Set Permissions \u0026 Apply\n\n```bash\nsudo chmod 600 /etc/netplan/01-netcfg.yaml\nsudo netplan apply\n```\n\n### Test Wi-Fi\n\n```bash\niw dev wlp2s0 link                # Connection status\nip route | grep default           # Active interface\nping -I wlp2s0 8.8.8.8            # Ping test via Wi-Fi\n```\n\n\n\n## 🔒 5. Basic Protection \u0026 Security\n\n###  Harden the System\n#### Basics\n\n```bash\n# Disable Dash as /bin/sh (for compatibility)\nsudo dpkg-reconfigure dash\n# Choose “No” when asked for default system shell\n\n# Disable AppArmor (if not needed)\nsudo systemctl stop apparmor\nsudo systemctl disable apparmor\nsudo apt purge apparmor apparmor-utils -y\n```\n\n\n### ClamAV (Antivirus)\n\n```bash\nsudo apt install clamav clamav-daemon -y\nsudo systemctl enable clamav-freshclam --now\nsudo freshclam\n```\n\n###  chkrootkit (Rootkit Detection)\n\n```bash\nsudo apt install chkrootkit -y\nsudo chkrootkit\n```\n\n###  rkhunter (Advanced Rootkit Detection)\n\n```bash\nsudo apt install rkhunter -y\nsudo rkhunter --update\nsudo rkhunter --propupd\nsudo rkhunter --check\n```\n\n###  fail2ban (Brute-Force Protection)\n\n```bash\nsudo apt install fail2ban -y\nsudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local\n```\n\n#### Example SSH Protection (`/etc/fail2ban/jail.local`):\n\n```ini\n[sshd]\nenabled = true\nport = ssh\nfilter = sshd\nlogpath = /var/log/auth.log\nmaxretry = 3\nbantime = 3600\nfindtime = 600\n```\n\n#### Apply Config\n\n```bash\nsudo systemctl restart fail2ban\n```\n\n**more hardening in  [capter-5](cap-5.md)**\n\n\n\n## 🎉 Final Step\n\nYour X201 is now basic optimized and basic secured. Reboot the system to apply all changes and go to second Chapter\n\n```bash\nsudo reboot\n```\n\n\n\n### Chapters\n\n- [Cap-2: x201 – Web Server \u0026 Database Setup](cap-2.md) \u003c- next step?\n- [Cap-3: Performance \u0026 Resilience Test (Tor Edition)](cap-3.md)\n- [Cap-4: Security Audit Suite for Tor Edition Systems](cap-4.md)\n- [Cap-5: Server Hardening](cap-5.md)\n- [Why Ubuntu and not Debain?)](why-ubuntu.md)\n- [Why Apache and not NGINX?](why-apache.md)\n\n\n\n\n---\n\n## 🤖 Support Note \u0026 Human Sanity Disclaimer™\n\nThis project was born not just from curiosity, but mostly because I was too lazy to remember every damn package and config flag.  \nSo I asked some AI buddies – ChatGPT, DeepSeek, and a few others. They tried hard... but mostly just repeated the same sanitized tech-manual fluff.  \nIn the end, it always takes a stubborn human with a **Thank Pad** (yes, *ThinkPad*) to fix the chaos and make things actually work™.\n\nThis whole setup was handcrafted with caffeine, rage against broken tutorials, deep system logs, and a little help from not-so-evil AI.\n\n✨ **AI isn’t evil. But humans can be.** Let’s use the machine to build, not to break.\n\n⭐ If this project helped you, drop a star.  \n🥖 If you’re rich: sponsor me.  \n🫡 If you’re broke too: respect – now go fix your own ThankPad™.\n\n\n## Support\n\nIf this helped you:\n\n* ⭐ the repo  \n* Share it  \n* Visit [Volkan Sah](https://github.com/volkansah)  \n* [Support via GitHub Sponsors](https://github.com/sponsors/volkansah)\n\n---\n\n## License\n\n🦇 **BatLicense (DBAD Edition) v1.0**  \n\u003e A hybrid license for ethical hackers, builders, and responsible humans. [LICENSE](LICENSE)\n\n### 📜 Core Terms  \nThis project is licensed under the [Don't Be a Dick Public License](https://github.com/philsturgeon/dbad),  \nwith the following **additional conditions**:\n\n- Don't be a dick.  \n- Respect open-source contributions.  \n- Don’t steal, resell, or wrap this in shady business practices.  \n- If you fork, contribute back. If you fix, share it.  \n- And most importantly: **Be Batman**.\n\n---\n\n### ⚡ Credits\n\n- **Mr. Chess aka Volkan Sah** // also known as **Batman** 🦇  \n- **Markdown files powered by:**  \n  - Batman’s caffeine, rage, and grind  \n  - His bro **ChatGPT** (*Wizard-mode engaged*)  \n  - Sparring partners: **Claude AI**, **Gemini**, and **DeepSeek**  \n    \u003e *Thanks for inspiring cross-platform chaos and code sanity.*\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolkansah%2Fx201-batconsole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolkansah%2Fx201-batconsole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolkansah%2Fx201-batconsole/lists"}