{"id":37713198,"url":"https://github.com/zudsniper/autolinux","last_synced_at":"2026-01-16T13:21:54.258Z","repository":{"id":297631348,"uuid":"980231777","full_name":"zudsniper/autolinux","owner":"zudsniper","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-16T06:24:32.000Z","size":78,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-16T06:30:21.268Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zudsniper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-05-08T19:36:17.000Z","updated_at":"2025-06-16T06:24:35.000Z","dependencies_parsed_at":"2025-06-06T14:45:50.996Z","dependency_job_id":null,"html_url":"https://github.com/zudsniper/autolinux","commit_stats":null,"previous_names":["zudsniper/autolinux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zudsniper/autolinux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zudsniper%2Fautolinux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zudsniper%2Fautolinux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zudsniper%2Fautolinux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zudsniper%2Fautolinux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zudsniper","download_url":"https://codeload.github.com/zudsniper/autolinux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zudsniper%2Fautolinux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-16T13:21:53.551Z","updated_at":"2026-01-16T13:21:54.253Z","avatar_url":"https://github.com/zudsniper.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ubuntu 24.10 Auto-Configuration Scripts\n\nA complete automation suite for setting up Ubuntu 24.10 with a custom desktop environment, applications, and system configurations. This project automates the entire process from OS installation to fully configured desktop environment.\n\n## 🎯 Project Overview\n\nThis collection of scripts transforms a fresh Ubuntu 24.10 installation into a fully configured development and productivity workstation with:\n- Custom GNOME desktop environment with extensions\n- Development tools (VS Code, Cursor, Docker, etc.)\n- Gaming and entertainment applications\n- System hardening and optimizations\n- Static IP configuration with Wake-on-LAN\n\n## 📋 Table of Contents\n\n1. [Prerequisites \u0026 Requirements](#prerequisites--requirements)\n2. [Installation Order](#installation-order)\n3. [Script Descriptions](#script-descriptions)\n4. [Dangerous Operations \u0026 Warnings](#dangerous-operations--warnings)\n5. [Safe Configuration Options](#safe-configuration-options)\n6. [Headless Server Installation](#headless-server-installation)\n7. [Troubleshooting](#troubleshooting)\n\n## 🔧 Prerequisites \u0026 Requirements\n\n### Hardware Requirements\n- **Disk Space**: Minimum 100GB for root partition + 16-17GB swap partition\n- **RAM**: 8GB minimum, 16GB recommended\n- **Network**: Ethernet connection for static IP configuration\n\n### Software Requirements\n- Fresh Ubuntu 24.10 installation\n- User with sudo privileges (script assumes username `jason`)\n- Internet connection for package downloads\n\n### Pre-Installation Setup\nIf using the autoinstall method:\n1. Generate password hash: `mkpasswd --method=SHA-512`\n2. Update `autoinstall.yaml` with your password hash\n3. Host the setup scripts on a web server or modify the `runcmd` section\n\n## 🚀 Installation Order\n\n**⚠️ CRITICAL: Run scripts in this exact order to avoid dependency issues**\n\n### For Fresh Desktop Installation:\n\n```bash\n# 1. System Configuration (MUST RUN FIRST)\nsudo ./system_config.sh\n\n# 2. Application Installation\nsudo ./app_install.sh\n\n# 3. Desktop Environment Configuration\nsudo ./desktop_config.sh\n\n# 4. GNOME Extensions (optional but recommended)\nsudo ./gnome_extensions.sh\n# OR for Just Perfection only:\nsudo ./install_just_perfection.sh\n\n# 5. Reboot to apply all changes\nsudo reboot\n```\n\n### For Existing Installation with Separate Home Partition:\n\n```bash\n# Run this BEFORE the main installation scripts\n./relink_home.sh\n```\n\n## 📝 Script Descriptions\n\n### Core Installation Scripts\n\n#### `system_config.sh` 🏗️\n**Purpose**: Essential system-level configurations\n- **Swap Verification**: Ensures 16-17GB swap partition exists on the OS drive\n- **Network Configuration**: Sets static IP 192.168.1.69 with Cloudflare DNS\n- **Wake-on-LAN**: Configures WoL for remote wake capability\n- **SSH Server**: Enables and configures OpenSSH\n- **Display Manager**: Forces X11 over Wayland for compatibility\n- **Sudo Configuration**: Sets up passwordless sudo for the current user\n\n#### `app_install.sh` 📦\n**Purpose**: Installs development tools, applications, and services\n- **Development Tools**: VS Code, Cursor, Docker, GitHub CLI, pyenv, nvm, Rust\n- **Gaming**: Steam, ckb-next (Corsair keyboards), Piper (gaming mice)\n- **Communication**: Discord, Signal, Spotify\n- **Utilities**: 1Password, RustDesk, LocalSend, Flatseal\n- **System Monitoring**: Custom disk monitor and Discord notifications\n- **Virtualization**: QEMU/KVM with virt-manager\n\n#### `desktop_config.sh` 🎨\n**Purpose**: Configures GNOME desktop environment\n- **Theme**: Sets dark theme system-wide\n- **Dock Configuration**: Left-side dock with auto-hide\n- **Application Pinning**: Configures favorite apps in dock\n- **Terminal Setup**: Configures Kitty terminal with proper desktop integration\n\n#### `gnome_extensions.sh` 🧩\n**Purpose**: Installs and configures GNOME extensions\n- **Tiling Shell**: Advanced window management\n- **Unite**: Unified window decorations\n- **Hide Top Bar**: Auto-hiding top panel\n\n### Utility Scripts\n\n#### `relink_home.sh` 🔗\n**Purpose**: Reconnects existing home directory from separate partition\n- **Use Case**: When reinstalling Ubuntu but keeping existing /home\n- **Features**: UID matching, fstab configuration, backup creation\n- **Safety**: Extensive validation and confirmation prompts\n\n#### `install_just_perfection.sh` ⚡\n**Purpose**: Installs Just Perfection GNOME extension\n- **Alternative**: Lighter alternative to the full extension suite\n- **Configuration**: Minimal panel and dash setup\n\n#### `reset_gnome_extensions.sh` 🔄\n**Purpose**: Emergency reset for problematic extensions\n- **Use Case**: When extensions cause desktop instability\n- **Function**: Disables all extensions and resets configurations\n\n#### `autoinstall.yaml` 🤖\n**Purpose**: Unattended Ubuntu installation configuration\n- **Disk Layout**: 500MB boot, 30GB root, 16GB swap\n- **User Setup**: Creates user `jason` with hashed password\n- **Post-Install**: Downloads and runs setup scripts automatically\n\n## ⚠️ Dangerous Operations \u0026 Warnings\n\n### Critical System Changes\n1. **Network Configuration**: \n   - Sets static IP 192.168.1.69\n   - **Risk**: May lose network connectivity if gateway isn't 192.168.1.1\n   - **Mitigation**: Verify network settings before running\n\n2. **Swap Partition Requirements**:\n   - **Risk**: Script will exit if proper swap isn't found\n   - **Requirement**: 16-17GB swap partition on same disk as root\n   - **Verification**: Check with `swapon --show` before running\n\n3. **Sudo Configuration**:\n   - Enables passwordless sudo for current user\n   - **Risk**: Reduces security if system is compromised\n   - **Mitigation**: Only use on trusted systems\n\n4. **Display Manager Changes**:\n   - Forces X11 over Wayland\n   - **Risk**: May cause display issues on some systems\n   - **Recovery**: Edit `/etc/gdm3/custom.conf` to re-enable Wayland\n\n### Data Safety\n- **Home Directory**: `relink_home.sh` moves `/home` to `/home.bak`\n- **Backups**: Always creates backups before major changes\n- **Validation**: Extensive checks before destructive operations\n\n## ✅ Safe Configuration Options\n\n### Testing Mode\n```bash\n# Dry-run to see what would be installed (apps only)\napt list --upgradable | grep -E \"package-name\"\n```\n\n### Partial Installation\nRun individual components:\n```bash\n# System only (safest)\nsudo ./system_config.sh\n\n# Apps only (requires system config first)\nsudo ./app_install.sh\n\n# Desktop only\nsudo ./desktop_config.sh\n```\n\n### Rollback Options\n- **Networking**: Restore `/etc/netplan/01-netcfg.yaml.backup`\n- **fstab**: Restore from `/etc/fstab.backup.TIMESTAMP`\n- **Extensions**: Run `./reset_gnome_extensions.sh`\n\n## 🖥️ Headless Server Installation\n\nFor server/SSH-only installations, use the scripts in the `headless/` directory. These provide the same functionality without GUI components.\n\nSee [`headless/README.md`](headless/README.md) for specific instructions.\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n#### Network Connectivity Lost\n```bash\n# Restore original netplan\nsudo cp /etc/netplan/01-netcfg.yaml.backup /etc/netplan/01-netcfg.yaml\nsudo netplan apply\n```\n\n#### GNOME Extensions Broken Desktop\n```bash\n# Reset all extensions\n./reset_gnome_extensions.sh\n# Or manually:\ngsettings set org.gnome.shell disable-user-extensions true\n```\n\n#### Swap Not Detected\n```bash\n# Check current swap\nswapon --show\n# Check partition table\nsudo fdisk -l\n# Ensure swap is in fstab\ngrep swap /etc/fstab\n```\n\n#### Permission Issues After UID Change\n```bash\n# Find and fix ownership\nsudo find /home/username -user OLD_UID -exec chown NEW_UID:NEW_GID {} \\;\n```\n\n### Logs and Debugging\n- Application install logs: Check terminal output during `app_install.sh`\n- Extension logs: `~/.local/share/gnome-extensions-setup.log`\n- System logs: `journalctl -u service-name`\n\n## 🤝 Contributing\n\nThis is a personal automation project, but improvements are welcome:\n1. Test on different hardware configurations\n2. Add support for other Ubuntu versions\n3. Improve error handling and recovery\n4. Add more application options\n\n## 📄 License\n\nMIT License - Feel free to adapt for your own needs.\n\n---\n\n**⚠️ Final Warning**: These scripts make significant system changes. Always test on a virtual machine first and ensure you have backups of important data before running on production systems.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzudsniper%2Fautolinux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzudsniper%2Fautolinux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzudsniper%2Fautolinux/lists"}