{"id":33310237,"url":"https://github.com/hhftechnology/dock-dploy","last_synced_at":"2026-05-05T14:31:53.412Z","repository":{"id":324858879,"uuid":"1096675954","full_name":"hhftechnology/Dock-Dploy","owner":"hhftechnology","description":"A  web-based tool for building, managing, and converting Docker Compose files, configuration files, and schedulers.","archived":false,"fork":false,"pushed_at":"2025-11-18T07:41:41.000Z","size":520,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-18T09:16:27.201Z","etag":null,"topics":["compose-build","docker","docker-compose","newt","pangolin","tailscale"],"latest_commit_sha":null,"homepage":"https://docker-compose.hhf.technology","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hhftechnology.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-14T19:26:18.000Z","updated_at":"2025-11-18T07:32:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hhftechnology/Dock-Dploy","commit_stats":null,"previous_names":["hhftechnology/dock-dploy"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/hhftechnology/Dock-Dploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FDock-Dploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FDock-Dploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FDock-Dploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FDock-Dploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hhftechnology","download_url":"https://codeload.github.com/hhftechnology/Dock-Dploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhftechnology%2FDock-Dploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285181687,"owners_count":27128334,"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-11-19T02:00:05.673Z","response_time":65,"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":["compose-build","docker","docker-compose","newt","pangolin","tailscale"],"created_at":"2025-11-19T04:00:24.055Z","updated_at":"2026-05-05T14:31:53.404Z","avatar_url":"https://github.com/hhftechnology.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1 align=\"center\"\u003e\u003ca href=\"https://github.com/hhftechnology/Dock-Dploy\"\u003eDock-Dploy\u003c/a\u003e\u003c/h1\u003e\n\u003c/div\u003e\n\nA web-based tool for building, managing, and converting Docker Compose files, configuration files, and schedulers.\n\n\u003cdiv align=\"center\"\u003e\n    \n[![Docker](https://img.shields.io/docker/pulls/hhftechnology/dock-dploy?style=flat-square)](https://hub.docker.com/r/hhftechnology/dock-dploy)\n![Stars](https://img.shields.io/github/stars/hhftechnology/Dock-Dploy?style=flat-square)\n[![Discord](https://img.shields.io/discord/994247717368909884?logo=discord\u0026style=flat-square)](https://discord.gg/HDCt9MjyMJ)\n[![React](https://img.shields.io/badge/React-19.0-61dafb.svg)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-3178c6.svg)](https://www.typescriptlang.org/)\n[![Vite](https://img.shields.io/badge/Vite-6.1-646cff.svg)](https://vitejs.dev/)\n\n\u003c/div\u003e\n\n\u003cimg width=\"1735\" height=\"2354\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2f06bbe1-8161-4263-a030-f9cd258ee372\" /\u003e\n\u003cimg width=\"1735\" height=\"817\" alt=\"image\" src=\"https://github.com/user-attachments/assets/615c49e8-181f-4be8-8c07-aebc7aa2fb29\" /\u003e\n\n\n##  Table of Contents\n\n- [Features](#-features)\n- [Quick Start](#-quick-start)\n- [Deployment Options](#-deployment-options)\n- [Usage Guide](#-usage-guide)\n- [Tech Stack](#-tech-stack)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n---\n\n##  Features\n\n###  Docker Compose Builder\n\nBuild and manage Docker Compose files with a powerful visual interface:\n\n#### **Core Functionality**\n-  **Visual Service Builder** - Create and configure Docker services with an intuitive UI\n-  **Marketplace Integration** - Browse and import popular self-hosted services from [GitHub Marketplace](https://github.com/hhftechnology/Marketplace)\n-  **YAML Validation** - Real-time validation and formatting of Compose files\n-  **Live Preview** - See YAML output as you build with CodeMirror editor\n\n#### **Service Configuration**\n- **Container Settings**: Image, name, restart policies, user, working directory\n- **Networking**: Ports (host/container mapping), expose, network modes, DNS, extra hosts\n- **Storage**: Volumes (bind mounts \u0026 named volumes), tmpfs, devices\n- **Environment**: Variables (array/dict syntax), env files\n- **Resources**: CPU/memory limits and reservations, health checks\n- **Security**: Privileged mode, capabilities (cap_add/cap_drop), security options, sysctls\n- **Advanced**: Dependencies, labels, commands, entrypoints, ulimits, IPC/PID modes\n\n#### **VPN Integration** \nBuilt-in support for containerized VPN solutions:\n- **Tailscale** - Zero-config VPN with serve config support\n- **Newt** - Lightweight VPN with Pangolin integration\n- **Cloudflared** - Cloudflare Tunnel support\n- **WireGuard** - Custom WireGuard configurations\n- **ZeroTier** - Software-defined networking\n- **Netbird** - Modern VPN alternative\n\nConfigure services to route through VPN containers with automatic network_mode settings.\n\n#### **Network Management**\n- Create and configure Docker networks (bridge, host, overlay, macvlan)\n- IPAM configuration (driver, subnet, gateway)\n- Network driver options\n- External network support\n- Attachable and internal network flags\n\n#### **Volume Management**\n- Named volumes with driver configurations\n- Driver options (type, device, o flags)\n- External volume support\n- Volume labels\n\n#### **Conversion Tools** \n\nConvert your Docker Compose files to various formats:\n\n1. **Docker Run Commands**\n   - Convert services to `docker run` equivalents\n   - Automatically generates all flags and options\n   - Perfect for debugging or manual deployment\n\n2. **Systemd Service Files**\n   - Generate systemd unit files for services\n   - Auto-start containers with system boot\n   - Service management with systemctl\n\n3. **.env Files**\n   - Extract environment variables to .env format\n   - Optional: Clear environment variables from compose after extraction\n   - Separate sensitive data from compose files\n\n4. **Redact Sensitive Data**\n   - Automatically redact passwords, secrets, tokens, and API keys\n   - Safe sharing of compose files for troubleshooting\n   - Pattern-based detection of sensitive values\n\n5. **Komodo .toml Configuration**\n   - Convert Docker Compose to Komodo deployment format\n   - Supports Portainer stack imports\n   - Environment variable extraction\n\n---\n\n###  Config Builder\n\nGenerate configuration files for popular self-hosted applications:\n\n#### **Homepage Dashboard (gethomepage.dev)**\n- Create services configuration YAML\n- Define service name, description, icon, URL\n- Organize with categories and tags\n- Visual editor with live preview\n- Copy or download generated config\n\n#### **Custom Configurations**\n- Extensible system for additional config types\n- YAML-based output\n- Template system for common configurations\n\n---\n\n###  Scheduler Builder\n\nCreate schedulers and automation tasks in multiple formats:\n\n#### **Supported Formats**\n\n1. **Cron Jobs**\n   - Traditional cron syntax\n   - User and working directory support\n   - Command scheduling with full flexibility\n\n2. **GitHub Actions**\n   - Automated workflow generation\n   - Cron-based scheduling\n   - Ready-to-use YAML workflow files\n\n3. **Systemd Timers**\n   - Modern alternative to cron\n   - Service and timer unit files\n   - OnCalendar syntax support\n   - Persistent scheduling\n\n#### **Features**\n- Visual cron expression builder\n- Command testing and validation\n- Description and metadata support\n- Download or copy generated files\n- Multi-format export\n\n---\n\n##  Quick Start\n\n### Prerequisites\n\n- **Node.js** v18 or higher\n- **npm** or **yarn**\n- *Optional*: **Docker** (for containerized deployment)\n\n### Local Development\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/hhftechnology/Dock-Dploy.git\n   cd Dock-Dploy\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Start development server**\n   ```bash\n   npm run dev\n   ```\n\n4. **Open in browser**\n   ```\n   http://localhost:3000\n   ```\n\n### Build for Production\n\n```bash\nnpm run build\n```\n\nPreview the production build:\n\n```bash\nnpm run serve\n```\n\n---\n\n##  Deployment Options\n\n### Option 1: Docker Compose (Recommended)\n\n**Quick Deploy**\n\n```bash\n# Clone the repository\ngit clone https://github.com/hhftechnology/Dock-Dploy.git\ncd Dock-Dploy\n\n# Deploy with Docker Compose\ndocker-compose up -d\n```\n\n**Access at:** `http://localhost:3000`\n\n**docker-compose.yml configuration:**\n\n```yaml\nservices:\n  dock-dploy:\n    image: hhftechnology/dock-dploy:latest\n    container_name: dock-dploy\n    restart: unless-stopped\n    ports:\n      - \"3000:3000\"\n    environment:\n      - NODE_ENV=production\n    healthcheck:\n      test: [\"CMD\", \"wget\", \"--quiet\", \"--tries=1\", \"--spider\", \"http://localhost:3000/\"]\n      interval: 30s\n      timeout: 10s\n      retries: 3\n      start_period: 40s\n    deploy:\n      resources:\n        limits:\n          cpus: '1'\n          memory: 512M\n        reservations:\n          cpus: '0.5'\n          memory: 256M\n```\n\n**Custom Port:**\n```bash\n# Edit docker-compose.yml and change port mapping\nports:\n  - \"8080:3000\"  # Access on port 8080\n```\n\n---\n\n### Option 2: Docker (Standalone)\n\n**Using Pre-built Image** (when available)\n\n```bash\n# Pull from Docker Hub\ndocker pull hhftechnology/dock-dploy:latest\n\n# Run container\ndocker run -d \\\n  --name dock-dploy \\\n  --restart unless-stopped \\\n  -p 3000:3000 \\\n  -e NODE_ENV=production \\\n  hhftechnology/dock-dploy:latest\n```\n\n**Build and Run Locally**\n\n```bash\n# Build image\ndocker build -t dock-dploy .\n\n# Run container\ndocker run -d \\\n  --name dock-dploy \\\n  --restart unless-stopped \\\n  -p 3000:3000 \\\n  -e NODE_ENV=production \\\n  dock-dploy\n```\n\n**Container Management:**\n\n```bash\n# View logs\ndocker logs dock-dploy\n\n# Stop container\ndocker stop dock-dploy\n\n# Start container\ndocker start dock-dploy\n\n# Remove container\ndocker rm -f dock-dploy\n```\n\n---\n\n### Option 3: Vercel (Serverless)\n\n**One-Click Deploy**\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/hhftechnology/Dock-Dploy)\n\n**Manual Deploy**\n\n```bash\n# Install Vercel CLI\nnpm install -g vercel\n\n# Deploy\nvercel\n```\n\n**Configuration:**\n- The `vercel.json` is pre-configured for SPA routing\n- Automatic HTTPS and CDN\n- Global edge network deployment\n\n---\n\n### Option 4: Traditional Web Server\n\n**With Nginx**\n\n1. **Build the project**\n   ```bash\n   npm run build\n   ```\n\n2. **Copy dist folder to web root**\n   ```bash\n   sudo cp -r dist/* /var/www/html/dock-dploy/\n   ```\n\n3. **Configure Nginx**\n   ```nginx\n   server {\n       listen 80;\n       server_name dock-dploy.yourdomain.com;\n       root /var/www/html/dock-dploy;\n       index index.html;\n\n       location / {\n           try_files $uri $uri/ /index.html;\n       }\n\n       location ~* \\.(js|css|png|jpg|jpeg|gif|ico|svg)$ {\n           expires 1y;\n           add_header Cache-Control \"public, immutable\";\n       }\n   }\n   ```\n\n4. **Reload Nginx**\n   ```bash\n   sudo nginx -t\n   sudo systemctl reload nginx\n   ```\n\n**With Apache**\n\n1. **Build the project**\n   ```bash\n   npm run build\n   ```\n\n2. **Copy dist folder**\n   ```bash\n   sudo cp -r dist/* /var/www/html/dock-dploy/\n   ```\n\n3. **Create .htaccess**\n   ```apache\n   \u003cIfModule mod_rewrite.c\u003e\n       RewriteEngine On\n       RewriteBase /dock-dploy/\n       RewriteRule ^index\\.html$ - [L]\n       RewriteCond %{REQUEST_FILENAME} !-f\n       RewriteCond %{REQUEST_FILENAME} !-d\n       RewriteRule . /dock-dploy/index.html [L]\n   \u003c/IfModule\u003e\n   ```\n\n4. **Enable mod_rewrite**\n   ```bash\n   sudo a2enmod rewrite\n   sudo systemctl restart apache2\n   ```\n\n---\n\n### Option 5: Static Hosting\n\n**Netlify**\n\n```bash\n# Build\nnpm run build\n\n# Drag and drop 'dist' folder to Netlify\n# Or use Netlify CLI\nnpm install -g netlify-cli\nnetlify deploy --prod --dir=dist\n```\n\n**GitHub Pages**\n\n```bash\n# Build\nnpm run build\n\n# Deploy to gh-pages branch\nnpx gh-pages -d dist\n```\n\n**Cloudflare Pages**\n\n1. Connect your GitHub repository\n2. Build command: `npm run build`\n3. Output directory: `dist`\n4. Deploy\n\n---\n\n##  Usage Guide\n\n### Docker Compose Builder\n\n#### Creating a New Compose File\n\n1. **Navigate to Docker Compose Builder** from the sidebar\n2. **Add a Service:**\n   - Click \"Add Service\" button\n   - Enter service name and image\n   - Configure ports, volumes, environment variables\n3. **Browse Marketplace** (optional):\n   - Click \"Browse Compose Marketplace\"\n   - Search for popular services (e.g., Nginx, PostgreSQL, Redis)\n   - Click \"Add All Services\" to import\n4. **Configure Networks and Volumes** as needed\n5. **Download YAML** or copy to clipboard\n\n#### Using VPN Integration\n\n1. **Scroll to VPN Configuration** section\n2. **Enable VPN** toggle\n3. **Select VPN Type** (Tailscale, WireGuard, etc.)\n4. **Configure VPN Settings:**\n   - For Tailscale: Auth key, hostname, routes\n   - For WireGuard: Config path, interface\n   - For others: Respective configuration options\n5. **Select Services to Route Through VPN**\n6. VPN service is automatically added to your compose file\n\n#### Converting to Other Formats\n\n1. **Build your compose file**\n2. **Click \"Utilities\" dropdown** in the YAML editor\n3. **Select conversion type:**\n   - Docker Run - Get docker run commands\n   - Systemd Service - Generate unit files\n   - .env File - Extract environment variables\n   - Redact Sensitive Data - Safe sharing version\n   - Komodo .toml - Komodo deployment format\n4. **Copy or Download** the generated output\n\n#### Validation and Reformatting\n\n- **Validate YAML:** Click \"Validate YAML\" button\n- **Reformat:** Click \"Reformat YAML\" for consistent formatting\n- Real-time syntax highlighting with CodeMirror\n\n---\n\n### Config Builder\n\n#### Creating Homepage Configuration\n\n1. **Navigate to Config Builder**\n2. **Select \"Homepage\" config type**\n3. **Add Services:**\n   - Name: Service display name\n   - Description: Service description\n   - Icon: Icon URL or icon name\n   - URL: Service URL\n   - Category (optional): Group services\n   - Tags (optional): Service tags\n4. **Click \"Add Item\"**\n5. **Download or Copy** the generated YAML\n\n---\n\n### Scheduler Builder\n\n#### Creating a Cron Job\n\n1. **Navigate to Scheduler Builder**\n2. **Select \"Cron\" type**\n3. **Enter Details:**\n   - Name: Job identifier\n   - Schedule: Cron expression (e.g., `0 */6 * * *`)\n   - Command: Command to execute\n   - User: User to run as (default: root)\n   - Working Dir: Path to execute from\n4. **Download or Copy** the cron entry\n\n#### Creating GitHub Actions Workflow\n\n1. **Select \"GitHub Actions\" type**\n2. **Configure:**\n   - Name: Workflow name\n   - Schedule: Cron expression\n   - Command: Steps to execute\n3. **Download** `.github/workflows/scheduled.yml`\n\n#### Creating Systemd Timer\n\n1. **Select \"Systemd Timer\" type**\n2. **Configure:**\n   - Name: Service name (e.g., backup)\n   - Schedule: Cron or OnCalendar format\n   - Command: Command to execute\n   - User: Service user\n   - Working Dir: Execution path\n3. **Download** both `.service` and `.timer` files\n4. **Install:**\n   ```bash\n   sudo cp *.service /etc/systemd/system/\n   sudo cp *.timer /etc/systemd/system/\n   sudo systemctl daemon-reload\n   sudo systemctl enable --now backup.timer\n   ```\n\n---\n\n##  Tech Stack\n\n### Frontend\n- **React 19** - UI library\n- **TypeScript 5.7** - Type safety\n- **Vite 6** - Build tool and dev server\n- **TanStack Router** - Type-safe routing\n- **Tailwind CSS 4** - Utility-first CSS\n- **Radix UI** - Accessible component primitives\n- **Lucide React** - Icon library\n\n### Editor \u0026 Parsing\n- **CodeMirror** - Code editor with YAML syntax highlighting\n- **js-yaml** - YAML parsing and generation\n- **Zod 4** - Schema validation\n\n### Testing\n- **Vitest** - Unit testing framework\n- **Testing Library** - React testing utilities\n\n### Build \u0026 Deployment\n- **Vite** - Lightning-fast builds\n- **TypeScript** - Strict type checking\n- **Docker** - Containerization\n- **Nginx** - Production web server\n\n---\n\n\n---\n\n##  Contributing\n\nContributions are welcome! Here's how you can help:\n\n### Reporting Bugs\n\n1. Check existing issues\n2. Create a new issue with:\n   - Clear description\n   - Steps to reproduce\n   - Expected vs actual behavior\n   - Screenshots (if applicable)\n\n### Feature Requests\n\n1. Open an issue with the `enhancement` label\n2. Describe the feature and use case\n3. Discuss implementation approach\n\n### Pull Requests\n\n1. **Fork the repository**\n2. **Create a feature branch**\n   ```bash\n   git checkout -b feature/amazing-feature\n   ```\n3. **Make your changes**\n4. **Test thoroughly**\n   ```bash\n   npm test\n   npm run build\n   ```\n5. **Commit with descriptive messages**\n   ```bash\n   git commit -m \"Add amazing feature\"\n   ```\n6. **Push to your fork**\n   ```bash\n   git push origin feature/amazing-feature\n   ```\n7. **Open a Pull Request**\n\n### Development Guidelines\n\n- Follow existing code style\n- Add TypeScript types\n- Update documentation\n- Write tests for new features\n- Keep commits focused and atomic\n\n---\n\n##  Acknowledgments\n\n- **Marketplace Services** - [hhftechnology/Marketplace](https://github.com/hhftechnology/Marketplace)\n- **Shadcn UI** - Beautiful, accessible components\n- **Radix UI** - Accessible component primitives\n- **TanStack** - Type-safe routing\n- **Vite** - Next generation frontend tooling\n\n---\n\n##  Support\n\n- **Issues**: [GitHub Issues](https://github.com/hhftechnology/Dock-Dploy/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/hhftechnology/Dock-Dploy/discussions)\n\n---\n\n##  Roadmap\n\n- [ ] Multi-file compose project support\n- [ ] Import from existing compose files\n- [ ] Template library\n- [ ] Docker Swarm support\n- [ ] Kubernetes manifest generation\n- [ ] Visual network diagram\n- [ ] Service health monitoring\n- [ ] Compose file diff viewer\n- [ ] More config builder types\n- [ ] Advanced VPN configurations\n\n---\n\n**Made with ❤️ for the self-hosting community**\n\n---\n\n##  Star History\n\nIf you find this project useful, please consider giving it a star on GitHub!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhftechnology%2Fdock-dploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhhftechnology%2Fdock-dploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhftechnology%2Fdock-dploy/lists"}