{"id":19296762,"url":"https://github.com/zcavaleiro/.dotfiles","last_synced_at":"2026-05-09T02:06:52.311Z","repository":{"id":261402286,"uuid":"883680118","full_name":"zcavaleiro/.dotfiles","owner":"zcavaleiro","description":"My dotfiles examples for automate and setup app config files","archived":false,"fork":false,"pushed_at":"2024-11-14T17:33:01.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T00:44:09.664Z","etag":null,"topics":["automation","bash","configuration","dotfiles","operating-system"],"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/zcavaleiro.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":"2024-11-05T11:46:07.000Z","updated_at":"2024-11-14T17:33:05.000Z","dependencies_parsed_at":"2024-11-06T11:44:18.274Z","dependency_job_id":null,"html_url":"https://github.com/zcavaleiro/.dotfiles","commit_stats":null,"previous_names":["zcavaleiro/.dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zcavaleiro/.dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcavaleiro%2F.dotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcavaleiro%2F.dotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcavaleiro%2F.dotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcavaleiro%2F.dotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zcavaleiro","download_url":"https://codeload.github.com/zcavaleiro/.dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcavaleiro%2F.dotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000742,"owners_count":26082933,"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-09T02:00:07.460Z","response_time":59,"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","bash","configuration","dotfiles","operating-system"],"created_at":"2024-11-09T23:00:30.090Z","updated_at":"2025-10-09T05:13:14.861Z","avatar_url":"https://github.com/zcavaleiro.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles-example, Work in Progress..\n\n## Intro\nThis repository contains a quick demo for setting up a Linux operating system with 3 different ways to install applications. It also contains an example of some dotfiles configuration.\n\nThe operating system used for testing was *Fedora 41*. It can be easily adapted to other linux distributions from the Red Hat family. \n\n## Why this repo?\n\n- When we need to install and configure an Operating system several times, on multiple machines, and keep them identical.. lots of manual, and repeated work needs to be done.\n- This demonstration addresses that problem.\n- It can help to configure different devices (ie, laptop, desktop, minipc), and keep consistency of applications and configuration states.\n\n\n### Operating system setup files\n```sh\nsetup_fedora.sh\n\n# and\n\nsetup_fedora_full.sh\n\n\n# Place or file, to add, delete or change apps:\n\nfedora_apps.json\n```\n  - `setup_fedora.sh` \n    - applies some basics OS configurations normally done after a fresh OS installation (can be improved) and installs applications defined in `fedora_apps.json`.\n    - does not contain or apply the setup of my dotfiles.\n  - `setup_fedora_full.sh`\n    - contains all the above and includes the dotfiles setup.\n   - `fedora_apps.json`\n    - Its where we define the applications we need to install. It was made with 3 possible ways to install those apps.\n    - ***packages***, are the system installed apps with `dnf`\n    -  **applications**, can be compressed files like in the example.\n    - **signed_packages**, contains the process of installing apps via a signed repository key by the applications provider. In this case, Vs Code and the Brave Browser.\n\n      ```json\n      {\n          \"packages\": [\n              \"dnf-plugins-core\",\n              \"jq\",\n              \"timeshift\",\n              \"git\",\n              \"kleopatra\",\n              \"bottles\"\n          ],\n          \"applications\": [\n              {\n                  \"url\": \"https://developers.yubico.com/yubioath-flutter/Releases/yubico-authenticator-latest-linux.tar.gz\",\n                  \"dir\": \"Yubico-authenticator\"\n              }\n          ],\n          \"signed_packages\": [\n              \"vscode\",\n              \"brave\"\n          ]\n      }\n\n      ```\n\n\u003cbr\u003e\n\n### The dotfiles\n\n\nThis example is based on the idea of maintaining a git repository to sync configuration files and apply then using simple [symbolic links](https://en.wikipedia.org/wiki/Symbolic_link) across multiple devices or OS's.\n\n```sh\n# the script\nsetup_dotfiles\n\n# the shared dotfiles\n.bashrc\n.gitconfig\n\n```\n\n- The script `setup_dotfiles` clones this repo to a directory `.dotfiles` in your operating system home.\n- It then, creates the symbolic links from `.dotfiles` defined files, to the system files. In this demo:\n  - `.bashrc` file.\n  - `.gitconfig` file.\n- Finally, the script will create an ***alias*** called **dotfiles** that can pull the latest changes for this repo.\n\nIt's a [*KISS*](https://en.wikipedia.org/wiki/KISS_principle) example, Keep It Simple, Stupid!   \n\n\u003e Sharing public configuration files needs to be done with \"some\" caution, attention. Some of those configuration files can leak personal or device sensitive information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcavaleiro%2F.dotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzcavaleiro%2F.dotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcavaleiro%2F.dotfiles/lists"}