{"id":28403742,"url":"https://github.com/yashram96/codeport","last_synced_at":"2026-04-12T05:32:51.897Z","repository":{"id":294083041,"uuid":"985496364","full_name":"yashram96/codeport","owner":"yashram96","description":"CodePort","archived":false,"fork":false,"pushed_at":"2025-05-18T20:24:11.000Z","size":196,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-12T05:32:49.894Z","etag":null,"topics":["bash","cd","ci","code","deployment","nuxt3","nuxtjs","python3","shell","vuejs"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yashram96.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-17T22:14:57.000Z","updated_at":"2025-05-18T20:26:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"fa96ce1e-5a51-4ef0-be6c-f31b87bad278","html_url":"https://github.com/yashram96/codeport","commit_stats":null,"previous_names":["yashram96/codeport"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yashram96/codeport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashram96%2Fcodeport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashram96%2Fcodeport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashram96%2Fcodeport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashram96%2Fcodeport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yashram96","download_url":"https://codeload.github.com/yashram96/codeport/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashram96%2Fcodeport/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31705574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T05:11:36.334Z","status":"ssl_error","status_checked_at":"2026-04-12T05:11:27.332Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bash","cd","ci","code","deployment","nuxt3","nuxtjs","python3","shell","vuejs"],"created_at":"2025-06-01T19:08:44.568Z","updated_at":"2026-04-12T05:32:51.892Z","avatar_url":"https://github.com/yashram96.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CodePort - Modern Deployment Platform\n\nCodePort is a modern, secure deployment management platform built with Nuxt 3 that helps teams streamline their deployment workflows.\n\n## Features\n\n- 🚀 **Multi-Host Deployments**: Deploy to multiple hosts simultaneously\n- 📚 **Deployment Playbooks**: Create and manage reusable deployment scripts\n- 📊 **Real-time Logging**: View deployment logs in real-time\n- 🔐 **Role-based Access Control**: Admin and read-only user roles\n- 📜 **Comprehensive History**: Track all deployments with detailed logs\n- 🔄 **Automated Workflows**: Create standardized deployment processes\n\n## Tech Stack\n\n- **Frontend**: Nuxt 3, Vue 3, TypeScript\n- **Styling**: Tailwind CSS with custom components\n- **Authentication**: Token-based with role management\n- **State Management**: Vue 3 Composition API with Nuxt State\n- **Build Tool**: Vite\n\n## Project Structure\n\n```\n├── components/           # Vue components\n│   ├── DeploymentForm   # Deployment creation form\n│   ├── DeploymentHistory# Deployment history viewer\n│   ├── LogViewer       # Real-time log viewer\n│   └── ScriptEditor    # Playbook script editor\n├── layouts/             # Page layouts\n├── pages/              # Application routes\n├── server/             # Server-side code\n│   ├── api/           # API endpoints\n│   └── utils/         # Server utilities\n├── utils/             # Shared utilities\n├── public/            # Static assets\n└── playbooks/         # Deployment playbooks\n```\n\n## Setup Instructions\n\n1. **Install Dependencies**:\n   ```bash\n   npm install\n   ```\n\n2. **Configure Authentication**:\n   Create `config/auth.json` with admin and read-only user credentials:\n   ```json\n   {\n     \"write\": {\n       \"admin\": {\n         \"username\": \"admin\",\n         \"hashedPassword\": \"\u003cbcrypt-hash\u003e\"\n       }\n     },\n     \"readonly\": {\n       \"username\": \"user\",\n       \"hashedPassword\": \"\u003cbcrypt-hash\u003e\"\n     }\n   }\n   ```\n\n3. **Development Server**:\n   ```bash\n   npm run dev\n   ```\n\n4. **Production Build**:\n   ```bash\n   npm run build\n   npm run start\n   ```\n\n## Core Components\n\n### DeploymentForm\n- Creates new deployments\n- Supports multiple host selection\n- Configurable deployment arguments\n- Playbook selection\n\n### DeploymentHistory\n- Lists all deployments\n- Filterable by host\n- Real-time status updates\n- Log viewing\n\n### LogViewer\n- Real-time log streaming\n- Syntax highlighting\n- Error highlighting\n- Searchable logs\n\n### ScriptEditor\n- Playbook management\n- Syntax highlighting\n- Variable validation\n- Auto-save support\n\n## Deployment Process\n\n1. **Select Repository**: Choose the code repository to deploy\n2. **Choose Hosts**: Select target deployment hosts\n3. **Configure Arguments**: Set deployment-specific variables\n4. **Select Playbook**: Choose the deployment script\n5. **Execute**: Run the deployment process\n6. **Monitor**: View real-time logs and status\n\n## File Organization\n\n### Logs\n- Located in `/logs` directory\n- One file per deployment\n- Format: `{timestamp}.log`\n- Contains metadata and execution logs\n\n### Playbooks\n- Located in `/playbooks` directory\n- Shell scripts with metadata headers\n- Support environment variables\n- Reusable across deployments\n\n### Settings\n- Stored in `settings.json`\n- Manages repositories, hosts, and scripts\n- Configurable through UI\n- Version controlled\n\n## Security Features\n\n- Token-based authentication\n- Role-based access control\n- Secure password hashing\n- API route protection\n- CSP headers\n\n## Development Guidelines\n\n1. **Component Creation**:\n   - Use TypeScript\n   - Follow Vue 3 Composition API\n   - Include prop validations\n   - Document component API\n\n2. **API Endpoints**:\n   - Validate all inputs\n   - Include error handling\n   - Use TypeScript types\n   - Document response formats\n\n3. **Playbook Development**:\n   - Include metadata header\n   - Document variables\n   - Handle errors\n   - Include success/failure logging\n\n4. **Styling**:\n   - Use Tailwind utility classes\n   - Follow component class structure\n   - Maintain consistent spacing\n   - Use design system tokens\n\n## Environment Variables\n\n- `NUXT_PUBLIC_API_BASE`: API base URL\n- `AUTH_SECRET`: Authentication secret\n- `LOG_LEVEL`: Logging verbosity\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit changes\n4. Create pull request\n\n## License\n\nMIT License - see LICENSE file for details","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashram96%2Fcodeport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyashram96%2Fcodeport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashram96%2Fcodeport/lists"}