Sign inSign up

techbygiusi/labby

By techbygiusi

Updated 21 days ago

Self-hosted homelab documentation, topology platform with encrypted configuration backups.

Image
Networking
Web servers
Monitoring & observability
0

3.2K

techbygiusi/labby repository overview

Labby

Labby is a self-hosted homelab mapping and documentation platform for servers, virtual machines, LXC containers, networks, racks, applications, links, credentials and other infrastructure resources.

It includes topology and IP views, browser-based SSH console access, persistent Docker storage and encrypted configuration backups to local or directly configured SMB storage.

Features

  • Document servers, VMs, LXC containers, applications and network devices
  • Organize locations, racks, networks and infrastructure resources
  • Visualize infrastructure using topology, tree, graph and IP views
  • Store credentials for managed systems
  • Open SSH console sessions directly from Labby
  • Create encrypted configuration backups
  • Store backups locally or directly on an SMB share
  • Preserve application data in a persistent Docker volume

Quick Start

docker run -d \
  --name labby \
  -p 8080:80 \
  -v labby-data:/data \
  --restart unless-stopped \
  techbygiusi/labby:latest

Open Labby in your browser:

http://localhost:8080

Docker Compose

services:
  labby:
    image: techbygiusi/labby:latest
    container_name: labby
    ports:
      - "8080:80"
    volumes:
      - labby-data:/data
    restart: unless-stopped

volumes:
  labby-data:

Start Labby:

docker compose up -d

Persistent Data

Labby stores its application data, configuration, encrypted SMB credentials and backup encryption key inside:

/data

The persistent Docker volume must remain attached when the container is updated or recreated:

volumes:
  - labby-data:/data

Do not remove the volume unless you intentionally want to delete all Labby data.

Avoid using:

docker compose down -v

The -v option removes the persistent volume and may permanently delete the Labby configuration, resources, credentials and backup encryption key.

Backup Configuration

Backup settings are available in Labby under:

Config → Backup Config

Labby supports the following backup destinations:

  • Local storage
  • Direct SMB storage

SMB destinations are configured directly through the Labby interface.

Direct SMB Backups

The following SMB settings can be configured in Labby:

  • SMB server name or IP address
  • Share name
  • Optional subfolder
  • Username
  • Password
  • Optional domain or workgroup
  • SMB port
  • Optional guest access
  • Optional SMB transport encryption

Use the built-in connection test before enabling scheduled backups. The test verifies authentication and write access to the selected SMB destination.

The SMB user should have permission to:

  • Create files and folders
  • Read backup files
  • Update backup files
  • Delete expired or manually selected backups

The SMB password is stored encrypted inside the persistent /data volume.

The password is not:

  • Returned through the API
  • Included in exported configuration files
  • Displayed again after it has been saved

Backup Scheduling

Backups can be configured to run:

  • Hourly
  • Daily
  • Weekly

A retention limit can be configured to automatically remove older backups.

Labby also supports:

  • Manual backup creation
  • Manual backup deletion
  • Backup history
  • Backup logs
  • Encrypted backup archives
  • Local backup destinations
  • Direct SMB backup destinations
  • Backup restoration

Backup Encryption Key

The backup encryption key is stored inside the persistent data volume at:

/data/backup.key

This key is required to restore encrypted backups.

When migrating Labby to another system, preserve the complete /data volume or securely copy the backup encryption key together with the backup files.

Losing both the Labby data volume and the encryption key may make encrypted backups impossible to restore.

Updating Labby

Pull the newest image and recreate the container:

docker compose pull
docker compose up -d --force-recreate

Optionally remove unused Docker images:

docker image prune -f

Complete update command:

docker compose pull && docker compose up -d --force-recreate && docker image prune -f

The persistent labby-data volume remains unchanged during the update.

Version Pinning

Use latest to automatically follow the newest stable release:

image: techbygiusi/labby:latest

For controlled production deployments, use an exact version:

image: techbygiusi/labby:1.0.0

Update the version number manually when you are ready to deploy a newer release.

Building and Publishing a Release

The following example publishes version 1.0.0 for AMD64 and ARM64:

docker buildx build \
  --pull \
  --platform linux/amd64,linux/arm64 \
  -t techbygiusi/labby:1.0.0 \
  -t techbygiusi/labby:1.0 \
  -t techbygiusi/labby:1 \
  -t techbygiusi/labby:latest \
  --push .

For the next patch release, update the exact version while keeping the rolling tags:

docker buildx build \
  --pull \
  --platform linux/amd64,linux/arm64 \
  -t techbygiusi/labby:1.0.1 \
  -t techbygiusi/labby:1.0 \
  -t techbygiusi/labby:1 \
  -t techbygiusi/labby:latest \
  --push .

Verify the published image:

docker buildx imagetools inspect techbygiusi/labby:latest

Demo website:

https://my-labby.com

GitHub:

https://github.com/techbygiusi/Labby

Docker image:

techbygiusi/labby:latest

License

Labby is licensed under the GNU Affero General Public License v3.0.

Commit

Update Docker Hub documentation for direct SMB backups and versioned image releases

Tag summary

Content type

Image

Digest

sha256:635a1a78c

Size

78.1 MB

Last updated

about 1 month ago

docker pull techbygiusi/labby