{"id":32698871,"url":"https://github.com/hjongedijk/cloudinit-preinstall","last_synced_at":"2026-04-30T12:33:54.680Z","repository":{"id":315093036,"uuid":"1058051159","full_name":"hjongedijk/cloudinit-preinstall","owner":"hjongedijk","description":"Scripts and guides for deploying Debian VMs on Proxmox VE with automated cloud-init preinstallation.","archived":false,"fork":false,"pushed_at":"2026-04-18T10:05:16.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-30T12:33:37.412Z","etag":null,"topics":["automation","cloud-init","debian","docker","filebrowser","monitoring","proxmox","templates","vm"],"latest_commit_sha":null,"homepage":"https://github.com/hjongedijk/cloudinit-preinstall","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hjongedijk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-16T14:56:30.000Z","updated_at":"2026-04-18T10:05:19.000Z","dependencies_parsed_at":"2025-09-16T18:14:24.077Z","dependency_job_id":"b8ee0f12-fa0d-4c08-b2b2-96f6dc0baae9","html_url":"https://github.com/hjongedijk/cloudinit-preinstall","commit_stats":null,"previous_names":["hjongedijk/cloudinit-preinstall"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hjongedijk/cloudinit-preinstall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjongedijk%2Fcloudinit-preinstall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjongedijk%2Fcloudinit-preinstall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjongedijk%2Fcloudinit-preinstall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjongedijk%2Fcloudinit-preinstall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hjongedijk","download_url":"https://codeload.github.com/hjongedijk/cloudinit-preinstall/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjongedijk%2Fcloudinit-preinstall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32465009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"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":["automation","cloud-init","debian","docker","filebrowser","monitoring","proxmox","templates","vm"],"created_at":"2025-11-01T21:01:13.009Z","updated_at":"2026-04-30T12:33:54.662Z","avatar_url":"https://github.com/hjongedijk.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxmox Debian VM Setup \u0026 Cloud-Init Preinstall\n\nThis repository provides a fast path to deploy Debian 12/13 VMs on **Proxmox VE** and prepare them for **cloud-init** with an interactive, menu-driven preinstall script.\n\n- Creates a Debian VM using the community one-liners (Debian 12 or 13)  \n- Runs `cloudinit-preinstall.sh` inside the VM to apply sane defaults  \n- (Optional) Deploys **Filebrowser** and a **Monitoring** stack via Docker  \n- Cleans cloud-init state so your template is ready for cloning  \n\n---\n\n## 📑 Index\n\n- [✅ Quick Start](#-quick-start)\n- [🧰 What the script does](#-what-the-script-does)\n- [⚠️ Notes \u0026 Warnings](#️-notes--warnings)\n- [📋 Example Workflow](#-example-workflow)\n- [🔑 Filebrowser Default Credentials](#-filebrowser-default-credentials)\n- [🤝 Contributing](#-contributing)\n- [📜 License](#-license)\n\n---\n\n## ✅ Quick Start\n\n### 1) Create a Debian VM in Proxmox\n\n**Debian 12**\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/debian-vm.sh)\"\n```\n\u003csub\u003e(Source: [Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/scripts?id=debian-vm\u0026category=Operating+Systems))\u003c/sub\u003e\n\n---\n\n**Debian 13**\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/debian-13-vm.sh)\"\n```\n\u003csub\u003e(Source: [Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/scripts?id=debian-13-vm))\u003c/sub\u003e\n\n---\n\n### 2) Run the Cloud-Init Preinstall (inside the VM)\n\nOpen **Proxmox → your VM → Console (xterm.js)** and log in as `root`, then:\n\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/hjongedijk/cloudinit-preinstall/main/cloudinit-preinstall.sh)\"\n```\n\n- Choose **1) Run ALL steps** or run individual steps as needed.  \n- At the end you’ll get a clear **installation overview** and an **optional shutdown** prompt.  \n\n---\n\n## 🧰 What the script does\n\nThe script is interactive and idempotent where possible.  \n\n### When run as **non-root**\n- Prompts to set/unlock the **root password**  \n- Enables **SSH root login + password auth**  \n- Restarts **SSH**  \n- Prints follow-up steps and asks to logout  \n\n### When run as **root**\nRuns full setup (via menu or run-all):\n\n1. 🔄 Update \u0026 upgrade system packages  \n2. 📦 Install base tools (`sudo`, `curl`, `wget`, `git`, `htop`, `fail2ban`, etc.)  \n3. 🔐 Set and unlock `root` password  \n4. 🔧 Configure SSH (`PermitRootLogin` + `PasswordAuthentication` **enabled**)  \n5. 🧹 Remove an existing user (optional, interactive), if VM only needs to have **root** user  \n6. 🕰️  Set timezone → `Europe/Amsterdam`  \n7. 🧰 Install `qemu-guest-agent`, `zip`, `unzip`, and **enable** `getty@tty1` for **Default (VNC console)**  \n8. 🐍 Install Python 3, pip, venv, dev tools  \n9. 🐳 Install Docker CE + Compose plugins  \n10. 🔌 Configure Docker to listen on `unix:///var/run/docker.sock` and `tcp://0.0.0.0:2375` (**⚠️ insecure**)  \n11. 👥 Grant Docker access (via group or chmod 666)  \n12. 📁 Deploy **Filebrowser** bundle (`/opt/filebrowser`)  \n13. 📊 Deploy **Monitoring** bundle (`/opt/monitoring`)  \n14. 🧽 Clean cloud-init state and apt cache  \n15. 📴 Prompt for shutdown (optional)  \n\n---\n\n## ⚠️ Notes \u0026 Warnings\n\n- Always run as **root** for the full installer.  \n- Docker TCP (2375) is **unsecured** — only use on trusted networks.  \n- After running, configure cloud-init in Proxmox (`user`, `password`, `ip=dhcp`) and **regenerate image**.  \n- After enabling **getty@tty1** you can safely remove the serial port and set Display → **Default (VNC console)**.  \n- **Security Reminder**: Always review and understand scripts before executing them on your server. Do not blindly run one-liners from the internet without inspection. \n\n---\n\n## 📋 Example Workflow\n\n1. Deploy Debian VM (12 or 13) via community script.  \n2. Boot the VM, open **Console (xterm.js)**, log in as `root`.  \n3. Run the preinstall script:  \n   ```bash\n   bash -c \"$(curl -fsSL https://raw.githubusercontent.com/hjongedijk/cloudinit-preinstall/main/cloudinit-preinstall.sh)\"\n   ```  \n4. Choose **Run ALL** (or step through interactively).  \n5. Shut down the VM when done.  \n6. Configure **cloud-init** in Proxmox and regenerate image.  \n7. Optional remove the **Serial Port (serial0)** from VM Hardware and set **Display** to Default.  \n8. Convert the VM to template.  \n9. VM template is now **ready for cloning \u0026 production use** 🚀  \n\n---\n\n## 🔑 Filebrowser Default Credentials\n\nBy default, the **Filebrowser** bundle (`/opt/filebrowser`) is initialized with this admin account:\n\n- **Username:** `admin`  \n- **Password:** `XRYCRko11zRFkL`  \n\n⚠️ **IMPORTANT:** You must change this password immediately after your first login to ensure security.  \n\nTo change the password, open the Filebrowser web UI (by default exposed on port **8079**) and update the admin account credentials under the user settings.  \n\n---\n\n## 🤝 Contributing\n\nContributions are welcome!  \n\n- 🪄 **Fork** the repository  \n- 🌱 **Create** a feature branch (`git checkout -b feature/my-change`)  \n- 💾 **Commit** your changes (`git commit -m \"Add my feature\"`)  \n- 📤 **Push** the branch (`git push origin feature/my-change`)  \n- 🔀 **Open a Pull Request**  \n\nPlease keep contributions focused, and describe clearly what your change improves.  \n\n---\n\n## 📜 License\n\nThis project is licensed under the **MIT License** — see the [LICENSE](./LICENSE) file for details.  \nYou are free to use, modify, and distribute it, provided the license terms are respected.  \n\n---\n\n## ⚖️ Disclaimer\n\nThis project is provided **as-is** without warranty of any kind.  \nThe author(s) are **not responsible for any damage, data loss, misconfiguration, or security issues** resulting from the use of these scripts.  \n\nBy using this repository, you agree that **you run all scripts at your own risk** and that you are responsible for reviewing them before execution.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjongedijk%2Fcloudinit-preinstall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhjongedijk%2Fcloudinit-preinstall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjongedijk%2Fcloudinit-preinstall/lists"}