{"id":27093498,"url":"https://github.com/sentustudio/dotfiles","last_synced_at":"2026-04-12T13:04:08.344Z","repository":{"id":285039302,"uuid":"956884323","full_name":"SENTUstudio/dotfiles","owner":"SENTUstudio","description":"dotfiles preparado para programar con python, con instalación de paquetes multisistema","archived":false,"fork":false,"pushed_at":"2025-04-12T21:54:30.000Z","size":32591,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T22:25:56.492Z","etag":null,"topics":["ansible","cargo","dotfiles","fedora-kde","golang","ide-python","lazyvim","neovim","obsidian","postinstall","python","rye","uv"],"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/SENTUstudio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-29T03:38:09.000Z","updated_at":"2025-03-31T02:37:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"e55d7ca9-2af8-4a44-9ab3-98cf32d18ef6","html_url":"https://github.com/SENTUstudio/dotfiles","commit_stats":null,"previous_names":["sentustudio/dotfiles"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/SENTUstudio/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SENTUstudio%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SENTUstudio%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SENTUstudio%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SENTUstudio%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SENTUstudio","download_url":"https://codeload.github.com/SENTUstudio/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SENTUstudio%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010142,"owners_count":26084692,"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-10-12T02:00:06.719Z","response_time":53,"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":["ansible","cargo","dotfiles","fedora-kde","golang","ide-python","lazyvim","neovim","obsidian","postinstall","python","rye","uv"],"created_at":"2025-04-06T08:24:19.099Z","updated_at":"2025-10-12T03:40:38.647Z","avatar_url":"https://github.com/SENTUstudio.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n  █▀ █▀▀ █▄░█ ▀█▀ █░█  ┎┤  Ingeniería de Datos \u0026 Data Science  ├┒\n  ▄█ ██▄ █░▀█ ░█░ █▄█  ┖┤              en Python               ├┚\n              .studio\n```\n\n\u003cdiv align=\"center\"\u003e\u003cp\u003e\n    \u003ca href=\"https://github.com/SENTUstudio/dotfiles/releases/latest\"\u003e\n      \u003cimg alt=\"Última versión\" src=\"docs/badges/version.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/SENTUstudio/dotfiles/pulse\"\u003e\n      \u003cimg alt=\"Último commit\" src=\"docs/badges/last-commit.svg\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/SENTUstudio/dotfiles/blob/main/LICENSE\"\u003e\n      \u003cimg alt=\"Licencia\" src=\"docs/badges/license.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/SENTUstudio/dotfiles/stargazers\"\u003e\n      \u003cimg alt=\"Estrellas\" src=\"docs/badges/stars.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/SENTUstudio/dotfiles/issues\"\u003e\n      \u003cimg alt=\"Problemas\" src=\"docs/badges/issues.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/SENTUstudio/dotfiles\"\u003e\n      \u003cimg alt=\"Tamaño del repositorio\" src=\"docs/badges/repo-size.svg\" /\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n# dotfiles\n\nProyecto que se encarga de hacer una post-instalación a un sistema operativo resién instalado, donde instala las aplicaciones bases de mi preferencia y copia mis archivos de configuración al nuevo sistema. consta de un script llamado sentu_install.py que se usa por medio de curl para llamar a todo el proyecto en formato zip desde un repositorio, lo extrae y ejecuta la instalación mínima requerida para poder ejecutar las Fases de post-instalación.\n\nSu funcionamiento es simple, con la instrucción de instalar (mencionada más abajo) se toma el script sentu_install.py desde el repositorio y se ejecuta, donde comprueba los requerimientos mínimos para su funcionamiento y si no los tiene los instala, luego clona el repositorio dotfiles y ejecuta Ansible para realizar la post-instalación de paquetes y enlaces de mis archivos config\n\nEsta versión del proyecto respalda mis archivos de configuración para linux pensado primeramente y optimizado para la distro de linux Fedora, pero la idea es que sea multi-sistema, para incluir las distros más famosas de linux, mac y windows\n\n## Estructura de Archviso del proyecto\n\nEl proyecto cuenta con una estructura personalizada adaptada para proyectos python\n\n```bash\ndotfiles\n├── ansible\n│   ├── playbook.yml\n│   ├── roles\n│   │   ├── add_repositories\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   ├── base_system_configuration\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   ├── dotfiles_management\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   ├── install_core_dependencies\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   ├── install_extended_dependencies\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   ├── install_post_install\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   ├── install_rye\n│   │   │   └── tasks\n│   │   │       └── main.yml\n│   │   └── install_uv\n│   │       └── tasks\n│   │           └── main.yml\n│   └── vars\n│       └── installer_config.yaml\n├── config\n│   ├── alacritty\n│   ├── bspwm\n│   ├── fastfetch\n│   ├── gh\n│   ├── git\n│   ├── kitty\n│   ├── lazygit\n│   ├── mpd\n│   ├── ncmpcpp\n│   ├── nvim\n│   ├── ohmyposh\n│   ├── paru\n│   ├── ranger\n│   ├── sentu\n│   ├── tmux\n│   ├── tmuxinator\n│   └── zsh\n├── home\n│   ├── .p10k.zsh\n│   └── .zshrc\n├── README.md\n└── sentu_install.py\n\n```\n\nSistemas Operativos probados\n\n- [x] Fedora KDE 41+\n\n- [ ] OpenSUSE\n\n# Instalación\n\n```bash\ncurl -LsSf https://raw.githubusercontent.com/SENTUstudio/dotfiles/refs/heads/main/sentu_install.py | python3\n```\n\n# Diagrama de flujo\n\n```mermaid\nflowchart TD\n    %% Define styles for C4-like appearance\n    classDef person fill:#08427B,color:#fff,stroke:#052E56,stroke-width:2px\n    classDef externalSystem fill:#999999,stroke:#666666,stroke-width:2px\n    classDef container fill:#438DD5,color:#fff,stroke:#2E6295,stroke-width:2px\n    classDef component fill:#85BBF0,color:#000,stroke:#5A8CBF,stroke-width:2px\n    classDef database fill:#FF8F40,color:#000,stroke:#CC7A3C,stroke-width:2px\n    classDef boundary fill:none,stroke:#444,stroke-width:2px,stroke-dasharray:5 5\n\n    %% Installation Process with C4 styling\n    subgraph boundary_install [\"Proceso de Instalación\"]\n        A[\"sentu_install.py\\n[Script Instalador]\"]:::component\n        A --\u003e|\"ejecuta\"| B[\"Motor de Ansible Playbook\\n[Motor de Orquestación]\"]:::container\n    end\n\n    %% Configuration File with C4 styling\n    subgraph boundary_config [\"Configuración\"]\n        B10[\"installer_config.yaml\\n[Base de Datos de Configuración]\"]:::database\n    end\n\n    %% Ansible Components with C4 styling\n    subgraph boundary_ansible [\"Componentes del Motor de Ansible\"]\n        B1[\"playbook.yml\\n[Playbook Principal]\"]:::component\n        B2[\"test\\n[Role de Pruebas]\"]:::component\n        B3[\"base_system_configuration\\n[Role de Configuración Base]\"]:::component\n        B4[\"add_repositories\\n[Role de Configuración de Repositorios]\"]:::component\n        B5[\"install_core_dependencies\\n[Role de Dependencias Core]\"]:::component\n        B6[\"install_uv\\n[Role de Python UV]\"]:::component\n        B7[\"install_rye\\n[Role de Python Rye]\"]:::component\n        B8[\"install_extended_dependencies\\n[Role de Dependencias Extendidas]\"]:::component\n        B9[\"install_post_install\\n[Role de Post-Instalación]\"]:::component\n        B11[\"install_fonts\\n[Role de Instalación de Fuentes]\"]:::component\n        B12[\"dotfiles_management\\n[Role de Gestión de Dotfiles]\"]:::component\n    end\n\n    %% Deployment Targets with C4 styling\n    subgraph boundary_deploy [\"Destinos de Implementación\"]\n        C[\"Archivos de Configuración\\n[Configuración del Sistema]\"]:::container\n        D[\"Dotfiles del Usuario\\n[Entorno de Usuario]\"]:::container\n    end\n\n    %% Update the flow based on the new playbook order\n    B --\u003e B1\n    B1 --\u003e B10\n    B10 --\u003e B2\n    B2 --\u003e B3\n    B3 --\u003e B4\n    B4 --\u003e B5\n    B5 --\u003e B6\n    B6 --\u003e B7\n    B7 --\u003e B8\n    B8 --\u003e B9\n    B9 --\u003e B11\n    B11 --\u003e B12\n\n    B12 --\u003e|\"despliega\"| C\n    B12 --\u003e|\"copia a\"| D\n\n    %% Set boundary style\n    style boundary_install fill:none,stroke:#777,stroke-width:2px,stroke-dasharray:7 5\n    style boundary_config fill:none,stroke:#777,stroke-width:2px,stroke-dasharray:7 5\n    style boundary_ansible fill:none,stroke:#777,stroke-width:2px,stroke-dasharray:7 5\n    style boundary_deploy fill:none,stroke:#777,stroke-width:2px,stroke-dasharray:7 5\n\n    %% Hyperlinks\n    click A \"https://github.com/sentustudio/dotfiles/blob/main/sentu_install.py\"\n    click B1 \"https://github.com/sentustudio/dotfiles/blob/main/ansible/playbook.yml\"\n    click B2 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/test\"\n    click B3 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/base_system_configuration\"\n    click B4 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/add_repositories\"\n    click B5 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/install_core_dependencies\"\n    click B6 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/install_uv\"\n    click B7 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/install_rye\"\n    click B8 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/install_extended_dependencies\"\n    click B9 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/install_post_install\"\n    click B10 \"https://github.com/sentustudio/dotfiles/blob/main/ansible/vars/installer_config.yaml\"\n    click B11 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/install_fonts\"\n    click B12 \"https://github.com/sentustudio/dotfiles/tree/main/ansible/roles/dotfiles_management\"\n    click C \"https://github.com/sentustudio/dotfiles/tree/main/config\"\n    click D \"https://github.com/sentustudio/dotfiles/tree/main/home\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentustudio%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentustudio%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentustudio%2Fdotfiles/lists"}