| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
serman is a local infrastructure manager for development stacks built on Docker Compose. It gives you two interfaces over the same service set:
The project manages common local dependencies such as Redis, MySQL, MongoDB, and PostgreSQL, including separate testing variants where needed.
Current built-in services:
Service definitions are declared in internal/serman/services.go.
You need:
cp .env.example .envcd web
npm install
npm run build
cd ..GOCACHE=/tmp/go-build-web go build -o serman-web ./cmd/web
GOCACHE=/tmp/go-build-tui go build -o serman-tui ./cmd/serman./serman-web starthttp://localhost:8080
Build the web binary:
GOCACHE=/tmp/go-build-web go build -o serman-web ./cmd/webBuild the TUI binary:
GOCACHE=/tmp/go-build-tui go build -o serman-tui ./cmd/sermanserman-web supports command-style usage:
./serman-web start
./serman-web stop
./serman-web status
./serman-web helpBehavior:
Runtime files:
If browser auto-open works in your desktop environment, serman-web will try to open http://localhost:8080 automatically.
Run the terminal UI:
./serman-tuiKeyboard shortcuts:
The web UI currently includes:
Configuration lives in .env. If it does not exist, create it from .env.example.
Example:
NAMESPACE=services
REDIS_PORT=6379
REDIS_PASSWORD=password
MYSQL_PORT=3306
MYSQL_DATABASE="${NAMESPACE}-db"
MYSQL_USER="${NAMESPACE}-user"
MYSQL_PASSWORD=password
MYSQL_ROOT_PASSWORD=password
MONGODB_PORT=27017
MONGODB_DATABASE="${NAMESPACE}-db"
MONGODB_USERNAME="${NAMESPACE}-user"
MONGODB_PASSWORD=password
POSTGRES_PORT=5432
POSTGRES_DB="${NAMESPACE}-db"
POSTGRES_USER="${NAMESPACE}-user"
POSTGRES_PASSWORD=passwordImportant:
This project uses multiple Compose fragments from services/ instead of a single large file.
Examples:
The web and TUI layers assemble these fragments dynamically when calling Docker Compose.
If you want to add extra services without committing them, put additional Compose fragments in services/local/.
Example:
services/
00-base.yaml
redis.yaml
local/
mailhog.yaml
Any *.yaml file in services/local/ can define extra services, volumes, or other Compose fragments for your machine only.
fresh is intended for resetting a service and recreating it cleanly.
Behavior:
Testing services are designed to be ephemeral and use tmpfs where appropriate.
Run the web frontend in dev mode:
cd web
npm install
npm run devRun the web backend directly in foreground mode:
go run ./cmd/web serveRun the TUI directly:
go run ./cmd/sermanPostgreSQL 18 images expect data under /var/lib/postgresql, not the old /var/lib/postgresql/data mount layout.
This repo has already been updated for that layout, but if you created volumes with an older version of the service definition, you may need to remove and recreate the old PostgreSQL volume if you do not need the data.
The web binary tries several Linux launchers:
If none of them work in your session, open the URL manually.
If :8080 cannot be bound, the web server will fail to start. This is usually an environment restriction, not an application bug.
Symptom:
Invalid container name (-postgres)
Cause:
Fix:
cp .env.example .envThen confirm:
grep '^NAMESPACE=' .envSymptom:
data in /var/lib/postgresql/data (unused mount/volume)
Cause:
Fix:
Check:
./serman-web status
cat .serman/serman-web.logThen open:
http://localhost:8080
This project is licensed under the MIT License. See LICENSE.
| Back | FazBrowse Home | New Git URL |