Files
2025-12-14 21:09:47 -05:00

441 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
# 📦 Homebox Inventory Management Service
### Home inventory and organization system for tracking your belongings
[![Homebox](https://img.shields.io/badge/Homebox-Latest-blue?logo=github)](https://github.com/hay-kot/homebox)
[![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?logo=docker)](https://docs.docker.com/compose/)
[![License](https://img.shields.io/badge/License-AGPL--3.0-green)](https://github.com/hay-kot/homebox/blob/main/LICENSE)
[GitHub](https://github.com/hay-kot/homebox) • [Documentation](https://hay-kot.github.io/homebox/) • [Demo](https://homebox.fly.dev/)
</div>
---
## 📋 Overview
Homebox is a **home inventory management system** built for the Home User. It helps you track, organize, and manage your household items, receipts, warranties, and maintenance schedules all in one place.
### ✨ Key Features
- 📦 **Asset Tracking** - Track all your belongings with photos, receipts, and details
- 🏷️ **Label & Location** - Organize items by location, labels, and custom fields
- 📄 **Document Storage** - Attach receipts, manuals, and warranty information
- 📊 **Reporting** - Generate reports and export your inventory data
- 🔍 **Quick Search** - Find items quickly with powerful search functionality
- 📱 **Responsive Design** - Works seamlessly on desktop and mobile devices
- 🔐 **Self-Hosted** - Keep your data private and secure on your own server
- 👥 **Multi-User** - Share inventory with family members (optional)
---
## 🚀 Quick Start
### Step 1⃣: Create docker-compose.yml
```bash
touch docker-compose.yml
```
### Step 2⃣: Start Service
```bash
# homebox directory
docker-compose up -d
```
### Step 3⃣: Access Homebox
Open your browser to:
| Item | Value |
|------|-------|
| 🌐 **URL** | http://localhost:3100 (or your configured port) |
| 👤 **First Time** | Create your account on first visit |
### Step 4⃣: Initial Setup
<table>
<tr><td>
#### 👤 Create Account
Register your first user account
</td></tr>
<tr><td>
#### 🏠 Set Up Locations
Define rooms, storage areas, or locations
</td></tr>
<tr><td>
#### 🏷️ Create Labels
Add labels/tags for categorization
</td></tr>
<tr><td>
#### 📦 Add Items
Start adding your inventory items!
</td></tr>
</table>
> 🔒 **Security Note**: After creating your account, consider disabling registration in `.env`
---
## ⚙️ Configuration
### 🔧 Environment Variables
Edit your `.env` file with the following settings:
```bash
# 🌐 Web Port
HOMEBOX_PORT=3100
# 📝 Logging Configuration
HBOX_LOG_LEVEL=info
HBOX_LOG_FORMAT=text
# 📤 Upload Settings (in MB)
HBOX_WEB_MAX_UPLOAD_SIZE=10
# 🔓 Registration Settings
HBOX_OPTIONS_ALLOW_REGISTRATION=true
```
| Variable | Description | Default |
|----------|-------------|---------|
| `HOMEBOX_PORT` | Web interface port | `3100` |
| `HBOX_LOG_LEVEL` | Logging level (debug, info, warn, error) | `info` |
| `HBOX_LOG_FORMAT` | Log format (text, json) | `text` |
| `HBOX_WEB_MAX_UPLOAD_SIZE` | Max upload size in MB | `10` |
| `HBOX_OPTIONS_ALLOW_REGISTRATION` | Allow new user registrations | `true` |
### 💾 Volume Mounts
Data persistence is handled through Docker named volumes:
| Volume Name | Purpose | Contents |
|-------------|---------|----------|
| `homebox_data` | Application Data | SQLite database, uploaded files, attachments |
### 📁 Data Structure
Inside the `homebox_data` volume:
```
/data/
├── homebox.db # SQLite database
├── attachments/ # Uploaded files
└── photos/ # Item photos
```
---
## 🛠️ Management Commands
### 📋 View Logs
Monitor your service in real-time:
```bash
# View Homebox logs
docker-compose logs -f homebox
# View last 100 lines
docker-compose logs --tail=100 homebox
```
### 🔄 Restart Service
```bash
# Restart service
docker-compose restart homebox
```
### 🛑 Stop Service
```bash
# Stop service (keeps data)
docker-compose down
# Stop and remove volumes (⚠️ deletes all data!)
docker-compose down -v
```
### 💾 Backup Data
**Complete Data Backup:**
```bash
# Backup all data (database + attachments)
docker run --rm -v homebox_data:/data -v $(pwd):/backup alpine tar czf /backup/homebox_backup_$(date +%Y%m%d).tar.gz /data
```
**SQLite Database Only:**
```bash
# Backup just the database
docker run --rm -v homebox_data:/data -v $(pwd):/backup alpine cp /data/homebox.db /backup/homebox_$(date +%Y%m%d).db
```
> 📅 **Best Practice**: Schedule automated backups using cron or systemd timers
### ♻️ Restore Data
**Complete Data Restore:**
```bash
docker run --rm -v homebox_data:/data -v $(pwd):/backup alpine tar xzf /backup/homebox_backup.tar.gz -C /
```
**Database Only Restore:**
```bash
# Stop service first
docker-compose down
# Restore database
docker run --rm -v homebox_data:/data -v $(pwd):/backup alpine cp /backup/homebox.db /data/homebox.db
# Start service
docker-compose up -d
```
---
## 🏥 Health Checks
The service includes automated health monitoring:
| Service | Health Check | Interval | Timeout |
|---------|--------------|----------|---------|
| `homebox` | HTTP GET `/api/v1/status` | 30s | 10s |
**Check Service Status:**
```bash
# View service health status
docker-compose ps
# Detailed health check information
docker inspect homebox | grep -A 10 Health
```
---
## ⬆️ Upgrading
### 🔼 Upgrade Homebox
```bash
# Pull latest image
docker-compose pull homebox
# Rebuild and restart
docker-compose up -d --build homebox
```
> ⚠️ **Important**: Always backup your data before upgrading!
**Post-Upgrade Steps:**
1. Check logs for any errors:
```bash
docker-compose logs -f homebox
```
2. Verify the application is running:
```bash
docker-compose ps
```
3. Test access at http://localhost:3100
---
## 🔧 Troubleshooting
### ❌ Service Won't Start
<details>
<summary><b>Click to expand troubleshooting steps</b></summary>
**Step 1: Check logs**
```bash
docker-compose logs homebox
```
**Step 2: Verify port is not in use**
```bash
# Linux/Mac
lsof -i :3100
# Windows
netstat -ano | findstr :3100
```
**Step 3: Check disk space**
```bash
df -h
```
**Step 4: Verify volume permissions**
```bash
docker-compose exec homebox ls -la /data
```
</details>
### 🔐 Cannot Login / Forgot Password
Currently, Homebox doesn't have a built-in password reset. Options:
1. **Reset Database** (⚠️ loses all data):
```bash
docker-compose down
docker volume rm homebox_data
docker-compose up -d
```
2. **Manual Database Edit** (advanced users only)
### 📤 Upload Size Issues
If uploads are failing:
1. Increase `HBOX_WEB_MAX_UPLOAD_SIZE` in `.env`
2. Restart the service:
```bash
docker-compose restart homebox
```
### 🐌 Performance Issues
For large inventories:
1. **Regular Database Maintenance** - SQLite can benefit from occasional vacuuming
2. **Optimize Images** - Compress large photos before uploading
3. **Resource Allocation** - Ensure Docker has adequate resources
---
## 🔒 Security Recommendations
| Priority | Recommendation | Implementation |
|----------|----------------|----------------|
| 🔴 **Critical** | Disable registration | Set `HBOX_OPTIONS_ALLOW_REGISTRATION=false` after setup |
| 🔴 **Critical** | Enable HTTPS | Configure reverse proxy (Nginx/Traefik) with SSL |
| 🟡 **Important** | Regular backups | Schedule automated backups (daily/weekly) |
| 🟡 **Important** | Keep updated | Regular Homebox updates |
| 🟢 **Recommended** | Strong passwords | Use complex passwords for all accounts |
| 🟢 **Recommended** | Network isolation | Use Docker networks for security |
### 🛡️ Security Checklist
- [ ] Registration disabled after initial account creation
- [ ] SSL/TLS enabled via reverse proxy
- [ ] Automated backup system in place
- [ ] Regular update schedule established
- [ ] Strong passwords for all user accounts
- [ ] Firewall rules configured
- [ ] Access restricted to local network or VPN
---
## 💡 Usage Tips
### 📸 Taking Good Item Photos
- Use good lighting
- Include serial numbers or model information
- Take multiple angles for valuable items
- Keep photos under 5MB for faster loading
### 🏷️ Organization Best Practices
1. **Locations** - Create hierarchical locations (House → Living Room → TV Stand)
2. **Labels** - Use consistent labeling (Electronics, Appliances, Tools, etc.)
3. **Custom Fields** - Add fields relevant to you (Purchase Date, Warranty Expiration, etc.)
4. **Attachments** - Always attach receipts and manuals
### 📊 Maintenance Schedules
Use Homebox to track:
- HVAC filter changes
- Appliance maintenance
- Tool calibration
- Warranty expirations
---
## 🔗 Integration with Main Stack
To include Homebox in the main docker-infrastructure setup:
1. Reference from main `docker-compose.yml`:
```yaml
include:
- services/homebox/docker-compose.yml
```
2. Or use service discovery with shared networks
See the [main repository README](../../README.md) for complete integration instructions.
---
## 📚 Resources
### 📖 Documentation
| Resource | Link |
|----------|------|
| 📘 Official Docs | [hay-kot.github.io/homebox](https://hay-kot.github.io/homebox/) |
| 🐙 GitHub Repo | [github.com/hay-kot/homebox](https://github.com/hay-kot/homebox) |
| 🎮 Live Demo | [homebox.fly.dev](https://homebox.fly.dev/) |
### 🆘 Support
Need help? Check these resources:
- 💬 **GitHub Discussions**: [github.com/hay-kot/homebox/discussions](https://github.com/hay-kot/homebox/discussions)
- 🐛 **GitHub Issues**: [github.com/hay-kot/homebox/issues](https://github.com/hay-kot/homebox/issues)
- 📖 **Documentation**: [hay-kot.github.io/homebox](https://hay-kot.github.io/homebox/)
---
## 🎯 Use Cases
### 🏠 Home Inventory
Track all household items for insurance purposes, moving, or organization
### 🔧 Tool Management
Keep track of tools, equipment, and their locations in workshop or garage
### 📚 Collection Management
Manage collections (books, games, movies, collectibles)
### 🏢 Small Business
Inventory for small businesses, offices, or rental properties
### 🎓 Educational
Lab equipment, classroom supplies, or library materials
---
<div align="center">
### 🌟 Happy Organizing! 🌟
**Made with ❤️ using Docker & Homebox**
[⬆️ Back to Top](#-homebox-inventory-management-service)
</div>