flock

command module
v0.0.0-...-f8d91c9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2026 License: MIT Imports: 14 Imported by: 0

README

Flock

A cross-platform, open-source local development environment manager.

CI Release License Go Report Card

Website · Download · Issues


Flock is a community alternative to Laravel Herd — a native desktop app that manages local vhosts, SSL certificates, PHP runtimes, database services, and more. Built with Go + Wails + Caddy, it runs on macOS, Linux, and Windows.

Features

  • Automatic SSL — Local HTTPS via mkcert, zero configuration
  • PHP Management — Multiple PHP versions with per-site FPM pools
  • Database Services — MySQL, PostgreSQL, and Redis managed from the GUI
  • Node.js Support — Per-site Node version selection
  • Plugin Architecture — Extensible to any language stack via a plugin API
  • Cross-Platform — Native desktop app for macOS, Linux, and Windows
  • System Tray — Runs quietly in the background, always accessible

Quick Start

Prerequisites

Linux only:

sudo apt-get install libgtk-3-dev libwebkit2gtk-4.1-dev

Development

# Clone the repo
git clone https://github.com/andybarilla/flock.git
cd flock

# Install frontend dependencies
cd frontend && npm install && cd ..

# Run in dev mode (hot reload)
wails dev

# Build for production
wails build

Running Tests

# Go tests
go test ./...

# Frontend tests
cd frontend && npm test

Architecture

flock/
├── internal/
│   ├── core/          # App lifecycle and wiring
│   ├── caddy/         # Embedded Caddy server management
│   ├── registry/      # Site registry (sites.json)
│   ├── plugin/        # Plugin host and interfaces
│   ├── ssl/           # mkcert SSL plugin
│   ├── php/           # PHP-FPM plugin
│   ├── databases/     # MySQL, PostgreSQL, Redis plugin
│   ├── node/          # Node.js plugin
│   ├── discovery/     # Plugin discovery and loading
│   ├── external/      # External plugin support
│   └── config/        # Configuration management
├── frontend/          # Svelte + Tailwind + DaisyUI
└── build/             # Build assets and packaging

Core layers:

  1. Plugin Host — discovers, loads, and manages plugin lifecycle
  2. Caddy Manager — embeds Caddy as a Go library; manages vhosts and TLS
  3. Site Registry — persists local sites to ~/.config/flock/sites.json
  4. Wails GUI — native webview with Svelte frontend

See docs/plans/2026-03-03-flock-core-design.md for the full architecture document.

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

Check the roadmap for planned features and current status.

License

MITAndy Barilla

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
php
ssl

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL