Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
53d60fd
Update README.md
jotka Dec 28, 2025
497fbdb
Update README.md
jotka Dec 29, 2025
e536388
Update README.md
jotka Dec 29, 2025
ab8743b
proper src structure, dockerfile, entrypoint
jotka Dec 29, 2025
f4a57ec
proper src structure, dockerfile, entrypoint
jotka Dec 29, 2025
ba05d16
cleanup .DS_Store
jotka Dec 29, 2025
9db6e67
drizzle config
jotka Dec 29, 2025
522154c
ignore
jotka Dec 29, 2025
81fcc28
Update LICENSE.txt
jotka Dec 29, 2025
53ca99a
Update README.md
jotka Dec 29, 2025
fcb36c4
bmac
jotka Dec 29, 2025
695acd9
bmac
jotka Dec 29, 2025
c60db29
compose example
jotka Dec 29, 2025
cd6544a
1.0.5
jotka Jan 1, 2026
de62327
1.0.5
jotka Jan 1, 2026
215f52b
1.0.5
jotka Jan 1, 2026
6a7116a
1.0.5
jotka Jan 2, 2026
3eab421
Update README.md
jotka Jan 2, 2026
059ecbb
Update README.md
jotka Jan 2, 2026
a8a5623
1.0.5
jotka Jan 2, 2026
c46870a
1.0.5
jotka Jan 2, 2026
86e4c9e
1.0.5
jotka Jan 3, 2026
a02115e
missing scripts
jotka Jan 3, 2026
410d542
1.0.6
jotka Jan 3, 2026
b269b8d
1.0.7
jotka Jan 11, 2026
6382b40
1.0.7
jotka Jan 11, 2026
6baf6c2
1.0.7
jotka Jan 11, 2026
f588ed7
Improve Environment Layout on Mobile
sieren Jan 8, 2026
f972378
Mobile: Only show total of stacks
sieren Jan 8, 2026
107e9c3
1.0.8
jotka Jan 14, 2026
e8ab07e
1.0.9
jotka Jan 17, 2026
6d9b509
1.0.10
jotka Jan 18, 2026
fd744ed
Update package.json
jotka Jan 19, 2026
80a5bbd
Update README.md
jotka Jan 19, 2026
6cb948e
Update README.md
jotka Jan 19, 2026
261d940
Update README.md
jotka Jan 19, 2026
566d800
Create ai-opt-out
jotka Jan 19, 2026
750c9c1
feat: add SYS_RAWIO to container capabilities list
FlintyLemming Jan 14, 2026
7f9862f
1.0.11
jotka Jan 20, 2026
0303f54
1.0.12
jotka Jan 22, 2026
dd6c5fd
1.0.12
jotka Jan 22, 2026
fd35a0a
1.0.12
jotka Jan 22, 2026
1a95f5a
Honor DATA_DIR env var in sqlite operations related to hawser connect…
vikte Jan 23, 2026
1036cd0
#96
jotka Jan 23, 2026
193dc44
Update README.md
jotka Jan 24, 2026
7d6f6f2
Update README.md
jotka Jan 24, 2026
2364755
1.0.13
jotka Jan 28, 2026
53be8f8
1.0.14
jotka Jan 31, 2026
ced84b5
Add option to pull image before container update
shamoon Feb 3, 2026
70e2166
Only show on update
shamoon Feb 3, 2026
1aca2a1
Ignore node_modules, .svelte-kit, and bun.lock
shamoon Feb 3, 2026
45bedca
Add basic CONTRIBUTING.md
shamoon Feb 3, 2026
6122fa4
Add basic PR template
shamoon Feb 3, 2026
afb0e73
Add bug report, FR templates, config
shamoon Feb 3, 2026
9278585
Update bug-report.yml
jotka Feb 6, 2026
f9fdfef
Update bug-report.yml
jotka Feb 6, 2026
b2989d0
Update bug-report.yml
jotka Feb 6, 2026
79c0298
Update bug-report.yml
jotka Feb 6, 2026
54a1488
Update bug-report.yml
jotka Feb 6, 2026
4627b70
chore(mfa): autofocus on the mfa code field on login
matt-boris Feb 4, 2026
a46154a
chore(login): autofocus on the username field
matt-boris Feb 6, 2026
2e1cb7f
chore(gitignore): add local dev auth files
matt-boris Feb 6, 2026
4cd7f1c
Add missing static assets (favicons, logos, webmanifest)
TimElschner Feb 6, 2026
2f7f5ef
Delete static/logo.png
jotka Feb 6, 2026
139e798
Delete static/logo_light.webp
jotka Feb 6, 2026
6149b3d
Delete static/logo_dark.webp
jotka Feb 6, 2026
7ed20ec
release job
jotka Feb 7, 2026
e829e60
1.0.15
jotka Feb 8, 2026
38fa758
1.0.15
jotka Feb 8, 2026
9daa647
1.0.15
jotka Feb 8, 2026
c9239f1
1.0.16
jotka Feb 9, 2026
a5360e9
1.0.16
jotka Feb 9, 2026
988e65b
1.0.17
jotka Feb 9, 2026
3140e4f
Add Bearer token auth support to sendNtfy
flohoss Jan 29, 2026
52de17e
feat: add Mattermost notification support
artbird309 Jan 28, 2026
dd0e778
1.0.18 updater
jotka Feb 16, 2026
de243ce
cleaner logos
jotka Feb 16, 2026
3f99719
1.0.18
jotka Feb 16, 2026
eade47e
1.0.18
jotka Feb 16, 2026
5633e06
1.0.18
jotka Feb 16, 2026
c2b1708
1.0.18
jotka Feb 16, 2026
d4eb5a5
1.0.18
jotka Feb 16, 2026
e0548f6
1.0.18
jotka Feb 16, 2026
3f23dfb
1.0.18
jotka Feb 16, 2026
c525a99
1.0.18
jotka Feb 16, 2026
fa7f3be
1.0.18
jotka Feb 16, 2026
b2b4d3d
1.0.18
jotka Feb 16, 2026
32c2919
1.0.18
jotka Feb 16, 2026
76e8fae
v1.0.19
jotka Mar 2, 2026
c618328
v1.0.19
jotka Mar 2, 2026
e9e5216
v1.0.20
jotka Mar 2, 2026
77ec974
v1.0.20
jotka Mar 2, 2026
1c16efd
v1.0.20
jotka Mar 2, 2026
0c894d9
fix: cap docker API version (fixes #679)
matt-boris Mar 3, 2026
464fcb4
1.0.20
jotka Mar 3, 2026
a84c111
1.0.20
jotka Mar 3, 2026
f9bc2a1
1.0.20
jotka Mar 3, 2026
07be45a
1.0.20
jotka Mar 3, 2026
80a9c8b
1.0.20
jotka Mar 6, 2026
83adb27
v1.0.21
jotka Mar 13, 2026
725798f
v1.0.21
jotka Mar 13, 2026
a621f7a
v1.0.21
jotka Mar 13, 2026
d0e5edc
fix: propagate DOCKER_API_VERSION to updater sidecar
itsDNNS Mar 13, 2026
7e869b5
Create SECURITY.md
jotka Mar 15, 2026
c19d73c
Update SECURITY.md
jotka Mar 15, 2026
2ca4170
v1.0.22
jotka Mar 21, 2026
faa2b9d
v1.0.22
jotka Mar 21, 2026
84ee775
feat: add OpenAPI/Swagger documentation for REST API
mariaicon11 Mar 22, 2026
2b429a8
fix: address Copilot review feedback on OpenAPI spec
strausmann Mar 22, 2026
93df164
test: add OpenAPI specification validation tests
strausmann Mar 22, 2026
016c23b
feat: expand OpenAPI spec to cover all 130+ API endpoints
troylane37 Mar 22, 2026
32b376c
merge: sync with upstream main, resolve package.json conflict
strausmann Mar 22, 2026
9874b6e
merge: resolve conflicts with upstream main
strausmann Mar 22, 2026
ea0a3df
test: comprehensive OpenAPI spec validation for 130+ endpoints
strausmann Mar 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
buy_me_a_coffee:
displayName: "Buy Me a Coffee"
account: dockhand
83 changes: 83 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Bug report
description: Something is not working
title: "[BUG] Concise description of the issue"
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
#### Thank you for taking the time to report a bug!
#### Have a question? 👉 [Start a new discussion](https://github.com/Finsys/dockhand/discussions/new).

#### Before opening an issue, please double check:

- [The troubleshooting documentation](https://dockhand.pro/manual/#troubleshooting).
- [The installation instructions](https://dockhand.pro/manual/#quick-start).
- [Existing issues and discussions](https://github.com/Finsys/dockhand/search?q=&type=issues).
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is. If applicable, add screenshots to help explain your problem.
placeholder: |
Currently Dockhand does not work when...

[Screenshot if applicable]
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
3. See error
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: Logs related to your issue.
render: bash
validations:
required: true
- type: textarea
id: logs_browser
attributes:
label: Browser logs
description: Logs from the web browser related to your issue, if needed
render: bash
- type: input
id: version
attributes:
label: Dockhand version
description: Check the 'About' section in Settings for the version number
placeholder: e.g. 1.0.14 352a295 (Jan 30, 2026)
validations:
required: true
- type: input
id: hawser-version
attributes:
label: Hawser version (if used)
validations:
required: false
- type: input
id: connection
attributes:
label: Connection mode
description: How you connect your Docker host to Dockhand
placeholder: socket/direct IP/hawser/hawser-edge
validations:
required: true
- type: checkboxes
id: required-checks
attributes:
label: Please confirm the following
options:
- label: I have already searched for relevant existing issues and discussions before opening this report.
required: true
- label: I have updated the title field above with a concise description.
required: true
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: 🤔 Questions and Help
url: https://github.com/Finsys/dockhand/discussions
about: General questions or support for using Dockhand.
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Feature request
description: Suggest an idea for improving Dockhand
title: "[Feature Request] Concise description of the feature"
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to suggest a feature!
- type: textarea
id: problem
attributes:
label: Problem statement
description: What problem does this feature solve?
placeholder: Describe the problem you’re facing.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: How would you like it to work?
placeholder: Describe your proposed solution.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Any alternative solutions or features you considered?
placeholder: List alternatives if any.
validations:
required: false
- type: textarea
id: additional
attributes:
label: Additional context
description: Add any other context or screenshots here.
placeholder: Optional details.
validations:
required: false
20 changes: 20 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Proposed change

<!--
Please include a summary of the change and which issue is fixed (if any) and any relevant motivation / context. List any dependencies that are required for this change. If appropriate, please include an explanation of how your proposed change can be tested. Screenshots and / or videos can also be helpful if appropriate.
-->

Closes #(issue or discussion)

## Type of change

<!--
What type of change does your PR introduce to Dockhand?
NOTE: Please check only one box!
-->

- [ ] Bug fix: non-breaking change which fixes an issue.
- [ ] New feature / Enhancement: non-breaking change which adds functionality.
- [ ] Breaking change: fix or feature that would cause existing functionality to not work as expected.
- [ ] Other. Please explain:

1 change: 1 addition & 0 deletions .github/ai-opt-out
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
opt-out: true
59 changes: 59 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Create GitHub Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Extract changelog
id: changelog
run: |
VERSION="${GITHUB_REF_NAME#v}"
BODY=$(jq -r --arg v "$VERSION" '
.[] | select(.version == $v) |
"## What'\''s new in v\(.version)\n\n" +
([.changes[] |
if .type == "feature" then "- ✨ \(.text)"
elif .type == "fix" then "- 🐛 \(.text)"
elif .type == "improvement" then "- ⚡ \(.text)"
else "- \(.text)"
end
] | join("\n")) +
"\n"
' src/lib/data/changelog.json)

if [ -z "$BODY" ]; then
BODY="Release ${GITHUB_REF_NAME}"
fi

cat <<EOF > /tmp/release-body.md
${BODY}

## Docker image

\`\`\`bash
docker pull fnsys/dockhand:${GITHUB_REF_NAME}
\`\`\`

Also available as \`fnsys/dockhand:latest\`

[View on Docker Hub](https://hub.docker.com/r/fnsys/dockhand)
EOF

sed -i 's/^ //' /tmp/release-body.md

- name: Create release
uses: softprops/action-gh-release@v2
with:
body_path: /tmp/release-body.md
generate_release_notes: false
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.idea/
.DS_Store
node_modules/
.svelte-kit/
bun.lock
data/db
data/.encryption_key
39 changes: 39 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Dockhand welcomes all contributions so thank you for considering contributing!

## How to Contribute
1. Fork the repository on GitHub.
2. Clone your forked repository to your local machine.
3. Create a new branch for your feature or bug fix.
4. Make your changes and commit them with clear messages.
5. Push your changes to your forked repository.
6. Open a pull request against the main repository's main branch.

## Tech Stack

- Base: own OS layer built from scratch using [Wolfi packages](https://github.com/wolfi-dev/os) via apko. Every package is explicitly declared in the Dockerfile.
- Frontend: [SvelteKit 2](https://svelte.dev/docs/kit/introduction), [Svelte 5](https://svelte.dev), [shadcn-svelte](https://www.shadcn-svelte.com), [TailwindCSS](https://tailwindcss.com)
- Backend: [Bun](https://bun.sh/) runtime with SvelteKit API routes
- Database: SQLite or PostgreSQL via [Drizzle ORM](https://orm.drizzle.team)
- Docker: direct docker API calls.

## Getting Started

1. Ensure you have Bun installed. You can download it from [Bun's official website](https://bun.sh/).
2. Clone the repository (or your fork):
```bash
git clone https://github.com/your-username/dockhand.git
cd dockhand
```
3. Install dependencies using Bun:
```bash
bun install
```
4. Start the development server:
```bash
bun dev
```
5. Open your browser and navigate to `http://localhost:5173` (or the port specified in the Bun output) to see the application running.

## CLA Agreement

When contributing to Dockhand, you will be asked to sign a Contributor License Agreement (CLA) to ensure that all contributions are properly licensed. This helps protect both you and the project. The agreement can be found [here](https://cla-assistant.io/Finsys/dockhand).
Loading