{"id":28187610,"url":"https://github.com/vieo-ai/devsetup","last_synced_at":"2025-05-16T08:10:20.389Z","repository":{"id":290100814,"uuid":"973351915","full_name":"vieo-ai/devsetup","owner":"vieo-ai","description":"Modular Development Environment Setup System for Ubuntu 24.04","archived":false,"fork":false,"pushed_at":"2025-04-27T21:52:24.000Z","size":86,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-05T02:38:33.717Z","etag":null,"topics":["development","ubuntu","workstation"],"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/vieo-ai.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}},"created_at":"2025-04-26T19:55:13.000Z","updated_at":"2025-05-04T20:23:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"b2c00d66-bcac-44e1-b366-de83c67ad9ac","html_url":"https://github.com/vieo-ai/devsetup","commit_stats":null,"previous_names":["protevus/devsetup","vieo-ai/devsetup"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vieo-ai%2Fdevsetup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vieo-ai%2Fdevsetup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vieo-ai%2Fdevsetup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vieo-ai%2Fdevsetup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vieo-ai","download_url":"https://codeload.github.com/vieo-ai/devsetup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493368,"owners_count":22080127,"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":["development","ubuntu","workstation"],"created_at":"2025-05-16T08:10:15.763Z","updated_at":"2025-05-16T08:10:20.382Z","avatar_url":"https://github.com/vieo-ai.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Modular Development Environment Setup System\n\nA flexible, modular system for setting up development environments across multiple machines.\n\n## Documentation\n\nComprehensive documentation is available in the `.dev/docs/` directory:\n\n- [Main Documentation](.dev/docs/README.md) - Overview and links to all guides\n- [Getting Started](.dev/docs/getting-started.md) - Step-by-step guide for new users\n- [Command Line Interface](.dev/docs/cli.md) - Detailed command line reference\n- [Workflows](.dev/docs/workflows.md) - Guide to using and creating workflows\n- [Software Modules](.dev/docs/software-modules.md) - Guide to software modules\n- [Command Modules](.dev/docs/command-modules.md) - Guide to command modules\n- [Remote Execution](.dev/docs/remote-execution.md) - Guide to remote execution\n- [Advanced Usage](.dev/docs/advanced-usage.md) - Advanced features and techniques\n- [Troubleshooting](.dev/docs/troubleshooting.md) - Solutions to common issues\n- [Contributing](.dev/docs/contributing.md) - Guide for contributors\n\n## Features\n\n- **Modular Design**: Each software package is defined in its own module file\n- **Workflow Support**: Create custom installation workflows for different development scenarios\n- **Command System**: Define and execute custom commands\n- **Remote Execution**: Deploy and run on remote machines\n- **Dry Run Mode**: Preview changes without making actual modifications\n- **Extensible**: Easy to add new software modules and commands\n\n## Directory Structure\n\n```\n.\n├── devsetup.sh                 # Main script\n├── .dev/                       # Development setup files\n│   ├── lib/                    # Library files\n│   │   ├── core.sh             # Core functions\n│   │   ├── module.sh           # Module handling functions\n│   │   ├── command.sh          # Command handling functions\n│   │   ├── remote.sh           # Remote execution functions\n│   │   └── utils.sh            # Utility functions\n│   ├── config/                 # Configuration files\n│   │   ├── vscode_extensions.txt  # VSCode extensions list\n│   │   └── remote-nodes.json   # Remote nodes configuration\n│   ├── modules/                # Module definitions\n│   │   ├── software/           # Software modules\n│   │   │   ├── vscode.json     # VSCode module\n│   │   │   ├── nodejs.json     # Node.js module\n│   │   │   └── ...             # Other software modules\n│   │   └── commands/           # Command modules\n│   │       └── system-cleanup.json # System cleanup commands\n│   └── workflows/              # Workflow definitions\n│       ├── default/            # Default workflow\n│       │   ├── 00-prepare.json # Preparation steps\n│       │   ├── 01-software.json # Software installation\n│       │   └── 02-cleanup.json # Cleanup steps\n│       ├── development/        # Full development environment workflow\n│       │   ├── 00-prepare.json # Preparation steps\n│       │   ├── 01-software.json # Software installation\n│       │   └── 02-cleanup.json # Cleanup steps\n│       ├── web-dev/            # Web development workflow\n│       │   ├── 00-prepare.json # Preparation steps\n│       │   ├── 01-software.json # Software installation\n│       │   └── 02-cleanup.json # Cleanup steps\n│       └── mobile-dev/         # Mobile development workflow\n│           ├── 00-prepare.json # Preparation steps\n│           ├── 01-software.json # Software installation\n│           └── 02-cleanup.json # Cleanup steps\n```\n\n## Usage\n\n### Basic Usage\n\n```bash\n# Install software using the default workflow\n./devsetup.sh --install\n\n# Install specific software\n./devsetup.sh --install vscode nodejs\n\n# Uninstall software\n./devsetup.sh --uninstall vscode\n\n# Use a specific workflow\n./devsetup.sh --install --workflow development\n\n# Dry run (no changes)\n./devsetup.sh --install --dry-run\n\n# Verbose output\n./devsetup.sh --install --verbose\n```\n\n### Specialized Workflows\n\nThe system includes several specialized workflows for different development scenarios:\n\n#### Full Development Environment\n\n```bash\n# Install complete development environment\n./devsetup.sh --install --workflow development\n```\n\nThis workflow installs all development tools including:\n- VSCode and extensions\n- Git tools (GitKraken)\n- Web browsers (Chrome, Edge)\n- Programming languages (Node.js, Java, Go, .NET)\n- Mobile development (Flutter, Android SDK, Android Studio)\n\n#### Web Development Environment\n\n```bash\n# Install web development environment\n./devsetup.sh --install --workflow web-dev\n```\n\nThis workflow installs tools focused on web development:\n- VSCode and extensions\n- Git tools (GitKraken)\n- Web browsers (Chrome, Edge)\n- Node.js and npm\n- Web development tools (Angular, React, Vue, etc.)\n- MongoDB\n\n#### Mobile Development Environment\n\n```bash\n# Install mobile development environment\n./devsetup.sh --install --workflow mobile-dev\n```\n\nThis workflow installs tools focused on mobile development:\n- VSCode and extensions\n- Git tools (GitKraken)\n- Chrome browser\n- Java Development Kit\n- Node.js\n- Flutter SDK\n- Android SDK\n- Android Studio\n- Mobile development tools (React Native, Ionic, etc.)\n\n### Remote Execution\n\n```bash\n# Deploy and install on a remote node\n./devsetup.sh --install --remote dev-laptop\n\n# Execute a command on a remote node\n./devsetup.sh --command \"apt update \u0026\u0026 apt upgrade -y\" --remote team-server\n\n# Execute in parallel on a node group\n./devsetup.sh --install --remote servers --parallel\n```\n\n### Command Execution\n\n```bash\n# Execute a command\n./devsetup.sh --command \"system-cleanup:full-cleanup\"\n\n# Execute a command with parameters\n./devsetup.sh --command \"vscode:update\"\n```\n\n## Module Definition\n\nSoftware modules are defined in JSON files with the following structure:\n\n```json\n{\n  \"type\": \"software\",\n  \"id\": \"vscode\",\n  \"name\": \"Visual Studio Code\",\n  \"description\": \"Code editor for developers\",\n  \"check_command\": \"code --version\",\n  \"version_regex\": \"^([0-9]+\\\\.[0-9]+\\\\.[0-9]+)\",\n  \"install_commands\": [\n    \"wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor \u003e packages.microsoft.gpg\",\n    \"sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg\",\n    \"sudo sh -c 'echo \\\"deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\\\" \u003e /etc/apt/sources.list.d/vscode.list'\",\n    \"rm -f packages.microsoft.gpg\",\n    \"sudo apt update\",\n    \"sudo apt install -y code\"\n  ],\n  \"uninstall_commands\": [\n    \"sudo apt purge -y code\",\n    \"sudo rm -f /etc/apt/sources.list.d/vscode.list\",\n    \"sudo rm -f /etc/apt/keyrings/packages.microsoft.gpg\",\n    \"sudo apt update\"\n  ],\n  \"dependencies\": [\n    \"wget\",\n    \"gpg\",\n    \"apt-transport-https\"\n  ],\n  \"path_exports\": [],\n  \"commands\": {\n    \"update\": {\n      \"description\": \"Update VSCode to the latest version\",\n      \"execute\": [\n        \"sudo apt update\",\n        \"sudo apt install --only-upgrade code\"\n      ]\n    }\n  }\n}\n```\n\n## Command Module Definition\n\nCommand modules define reusable commands:\n\n```json\n{\n  \"type\": \"command\",\n  \"id\": \"system-cleanup\",\n  \"name\": \"System Cleanup\",\n  \"description\": \"Clean up system by removing unused packages and cache\",\n  \"commands\": {\n    \"clean-apt\": {\n      \"description\": \"Clean APT cache\",\n      \"execute\": [\n        \"sudo apt autoremove -y\",\n        \"sudo apt clean\"\n      ]\n    },\n    \"full-cleanup\": {\n      \"description\": \"Perform a full system cleanup\",\n      \"execute\": [\n        \"@clean-apt\",\n        \"@clean-docker\"\n      ]\n    }\n  }\n}\n```\n\n## Workflow Definition\n\nWorkflows define the sequence of operations:\n\n```json\n{\n  \"type\": \"workflow\",\n  \"id\": \"software-installation\",\n  \"name\": \"Software Installation\",\n  \"description\": \"Install all software packages\",\n  \"modules\": [\n    \"vscode\",\n    \"nodejs\"\n  ],\n  \"commands\": {\n    \"pre-install\": {\n      \"description\": \"Pre-installation setup\",\n      \"execute\": [\n        \"echo 'Starting software installation...'\"\n      ]\n    }\n  },\n  \"sequence\": [\n    \"@pre-install\",\n    \"vscode:install\",\n    \"nodejs:install\",\n    \"@post-install\"\n  ]\n}\n```\n\n## Remote Nodes Configuration\n\nRemote nodes are defined in a JSON file:\n\n```json\n{\n  \"nodes\": [\n    {\n      \"id\": \"dev-laptop\",\n      \"name\": \"Development Laptop\",\n      \"host\": \"192.168.1.100\",\n      \"user\": \"developer\",\n      \"key_file\": \"~/.ssh/dev_laptop\",\n      \"install_path\": \"/opt/sdks\"\n    }\n  ],\n  \"groups\": {\n    \"development\": [\"dev-laptop\"],\n    \"servers\": [\"team-server\"],\n    \"all\": [\"dev-laptop\", \"team-server\"]\n  }\n}\n```\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvieo-ai%2Fdevsetup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvieo-ai%2Fdevsetup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvieo-ai%2Fdevsetup/lists"}