https://github.com/titpetric/task-ui
Task UI - a web based runner for Taskfile.yml
https://github.com/titpetric/task-ui
automation deployments deploys docker golang make makefile task taskfile terminal websocket
Last synced: 5 months ago
JSON representation
Task UI - a web based runner for Taskfile.yml
- Host: GitHub
- URL: https://github.com/titpetric/task-ui
- Owner: titpetric
- License: apache-2.0
- Created: 2023-07-01T18:44:29.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-09T09:51:30.000Z (5 months ago)
- Last Synced: 2025-05-09T10:42:30.521Z (5 months ago)
- Topics: automation, deployments, deploys, docker, golang, make, makefile, task, taskfile, terminal, websocket
- Language: Go
- Homepage:
- Size: 240 KB
- Stars: 56
- Watchers: 6
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Task UI
Run your `Taskfile.yml` from the browser.

Start the Docker image with `task docker:run`.
Task UI is meant for Docker environments. A generic Dockerfile exists, which
bundles typical dependencies like `task`, `ttyrec`, `docker`, `docker compose`.To use, start by navigating to the
[docker](https://github.com/titpetric/task-ui/tree/main/docker)
subfolder. It contains a Taskfile, with the typical commands to build and
run task-ui from a Docker image. For examples with Taskfiles you could
run, look into the folder
[examples](https://github.com/titpetric/task-ui/tree/main/examples).The layout is somewhat responsive, supporting mobile.
# Running
To set up your project to run with Task UI, it's recommended you use the
example Docker Compose setup here:```yaml
services:
runner:
image: titpetric/task-ui
restart: always
build: .
command:
- --history-enable
ports:
- 3000:3000
volumes:
- $PWD/app:/app
- /var/run/docker.sock:/var/run/docker.sock:ro
```In particular, you should mount your `/app` folder which contains your
`Taskfile.yml`, `docker-compose.yml` and other files. Task UI will run
with what you provide it with.- If you don't want history, remove the `command` flags.
- If you don't want to use Docker, remove the volume for `docker.sock`.The image provides an `id_ecdsa` key to use for SSH hops. The recommended
way to deploy is to provide your own `docker/root/.ssh` folder with
the SSH keys. You can regenerate the SSH key with `task docker:gen`.# Development
task: Available tasks for this project:
* default: Run everything
* fix: Fix code
* install: Install task-ui
* run: Run task-ui
* test: Test task-ui
* docker:build: Build task-ui docker image
* docker:gen: Generate ssh key for docker image
* docker:run: Run task-ui in docker env## task: default
Run everything
commands:
- `Task: fix`
- `Task: install`
- `Task: test`## task: test
Test task-ui
commands:
- `CGO_ENABLED=1 go test -race -count=1 -cover ./...`
- `CGO_ENABLED=0 go test -count=1 -cover ./...`## task: run
Run task-ui
commands:
- `task-ui --history-enable`## task: install
Install task-ui
commands:
- `CGO_ENABLED=0 go install .`## task: fix
Fix code
dependencies:
- `deps:goimports`commands:
- `goimports -w .`
- `go fmt ./...`
- `go vet .`
- `go mod tidy`
- `./README.md.sh > README.md`