Add initial configuration files for Dockhand setup

- Create .env.example for environment variable configuration
- Update README.md with setup instructions and usage details
- Add docker-compose configuration for socket-proxy and dockhand services
This commit is contained in:
Joakim Hellsén 2026-08-01 05:19:33 +02:00
commit 4459a858e4
Signed by: Joakim Hellsén
SSH key fingerprint: SHA256:/9h/CsExpFp+PRhsfA0xznFx2CGfTT5R/kpuFfUgEQk
3 changed files with 97 additions and 2 deletions

3
.env.example Normal file
View file

@ -0,0 +1,3 @@
# Generate a 32-byte (256-bit) random key encoded as base64:
# openssl rand -base64 32
DOCKHAND_ENCRYPTION_KEY=

View file

@ -1,3 +1,44 @@
# homeserver # Artemis
My homeserver My home server
## Requirements
```bash
# Install docker
paru -S docker docker-compose
# Create the directory on the host
sudo mkdir -p /opt/dockhand
sudo chown 1000:1000 /opt/dockhand
# Create 32-byte (256-bit) random key for Dockhand and add it to .env file
openssl rand -base64 32
# Create .env file
cp .env.example .env
```
## Usage
```bash
# Start the containers
docker compose up -d
# Stop the containers
docker compose down
```
## Access
```bash
# Open the dashboard in your browser
http://localhost:3000
# Go to Settings > Environments:
# - Add a new environment or edit the default one
# - Set connection type to Direct
# - Set the host to socket:proxy:2375
# - Save the environment
```

51
compose.yaml Normal file
View file

@ -0,0 +1,51 @@
services:
socket-proxy:
image: ghcr.io/tecnativa/docker-socket-proxy@sha256:1f5038b54f06c3e18422902cf00ba21803d1c97805aae032e5e6673d532d3459
container_name: socket_proxy
restart: unless-stopped
environment:
# Required for Dockhand core functionality
- CONTAINERS=1
- IMAGES=1
- NETWORKS=1
- VOLUMES=1
- EVENTS=1
- POST=1
- DELETE=1
# Required for dashboard host info and disk usage
- INFO=1
- SYSTEM=1
# Required for vulnerability scanning
- ALLOW_START=1
- ALLOW_STOP=1
- ALLOW_RESTARTS=1
# Optional: enable for the container terminal, volume browsing,
# and the in-container file browser (all use the Docker exec API)
- EXEC=1
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- socket_proxy
dockhand:
image: fnsys/dockhand:latest
container_name: dockhand
restart: unless-stopped
user: "1000:1000"
depends_on:
- socket_proxy
ports:
- "3000:3000"
volumes:
- /opt/dockhand:/opt/dockhand
environment:
- DATA_DIR=/opt/dockhand
- ENCRYPTION_KEY=${DOCKHAND_ENCRYPTION_KEY?Add encryption key to .env file}
- EXPORT_METRICS=true
networks:
- socket_proxy
- default
networks:
socket_proxy:
internal: true