{"id":19764287,"url":"https://github.com/theobori/minimal-config","last_synced_at":"2026-05-14T17:08:07.415Z","repository":{"id":192465805,"uuid":"685725122","full_name":"theobori/minimal-config","owner":"theobori","description":"💽 Minimal Debian configuration managed with Ansible playbook","archived":false,"fork":false,"pushed_at":"2024-04-30T23:40:35.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T23:47:20.283Z","etag":null,"topics":["ansible-playbook","configuration","debian"],"latest_commit_sha":null,"homepage":"","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/theobori.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}},"created_at":"2023-08-31T21:40:07.000Z","updated_at":"2024-04-30T23:40:38.000Z","dependencies_parsed_at":"2024-04-29T17:49:33.368Z","dependency_job_id":null,"html_url":"https://github.com/theobori/minimal-config","commit_stats":null,"previous_names":["theobori/minimal-config"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fminimal-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fminimal-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fminimal-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fminimal-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theobori","download_url":"https://codeload.github.com/theobori/minimal-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241096177,"owners_count":19908931,"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","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":["ansible-playbook","configuration","debian"],"created_at":"2024-11-12T04:13:02.997Z","updated_at":"2026-05-14T17:08:02.371Z","avatar_url":"https://github.com/theobori.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💽 minimal-config\n\n[![ansible-lint](https://github.com/theobori/minimal-config/actions/workflows/ansible-lint.yml/badge.svg)](https://github.com/theobori/minimal-config/actions/workflows/ansible-lint.yml)\n\nMinimal dependencies and configuration used on Debian system.\n\n## 📖 How to build and run ?\n\n1. Install the dependencies \n   - ansible\n   - ansible galaxy dependencies\n\n```sh\nansible-galaxy install -r requirements.yml\n```\n\n2. Configure a vault password (a filepass is better)\n3. Configure an inventory\n4. Configure a playbook\n   1. Inventory (if needed)\n   2. Replace variables\n   3. Encrypt the needed ones\n5. Run the playbook\n\n```sh\nansible-playbook \\\n   -i inventory.yml \\\n   --vault-password-file .vault_pass \\\n   main.yml\n```\n\n*We assume you run the playbook as root*.\n\n## ⚠️ knockd risks\n\nIn this configuration, we are using `knockd` to manage the openSSH firewall (`ufw`) rules. It can be very risky. If you want to be safe you can exclude the `knockd` task by commenting the following line in [roles/security/tasks/main.yml](roles/security/tasks/main.yml):\n\n```sh\n- include_tasks: knockd.yml\n```\n\nAnd then add a rule for `ufw` that allow you SSH connections.\n\n## ℹ️ Roles and variables\n\n### Roles\n\n- **`nickjj.docker`**: Setup and configure Docker + docker-compose.\n- **`weareinteractive.ufw`**: Setup the firewall and configure it.\n- **`base`**: Install basics needed packages for the other roles.\n- **`profile`**: Setup some default configuration for new users.\n- **`security`**: Setup system security tools/services like ssh, knockd, etc.\n- **`shell`**: Setup a shell environment with fish + tmux .\n\n### Variables\n\n#### SSH\n- **`ssh_identity_key_path`**: SSH public key used to auth.\n- **`ssh_port`**: Change the default SSH port.\n\n#### Port knocking\n- **`knockd_open_ssh_seq`**: Knockd open SSH (should be encrypted).\n- **`knockd_close_ssh_seq`**: knockd close SSH (should be encrypted).\n- **`knockd_tmp_open_ssh_seq`**: Temporary open SSH (should be encrypted).\n- **`knockd_opts`**: knockd CLI arguments used by the service.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheobori%2Fminimal-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheobori%2Fminimal-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheobori%2Fminimal-config/lists"}