Update README.md to include project overview, features, quick start guide, and development instructions
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
65
README.md
65
README.md
@@ -1,2 +1,67 @@
|
||||
# backup-client
|
||||
|
||||
A containerized SSH backup server built on Alpine Linux, designed to provide secure remote backup access using SSH/SFTP protocols.
|
||||
|
||||
## Features
|
||||
|
||||
- 🔐 **Secure SSH Access**: Automated SSH server setup with configurable authentication
|
||||
- 🐳 **Docker Ready**: Multi-architecture support (linux/amd64, linux/arm64)
|
||||
- 📦 **BorgBackup Integration**: Built-in backup solution support
|
||||
- ⚙️ **Dynamic Configuration**: Real-time SSH config monitoring and reloading
|
||||
- 🔄 **CI/CD Pipeline**: Automated builds via Drone CI
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
docker run -p 20022:20022 -v /backup/data:/home/backup safebox/backup-client
|
||||
|
||||
Configuration
|
||||
Environment Variables
|
||||
Variable Default Description
|
||||
SSH_PORT 20022 SSH server listening port
|
||||
SSH_USER backup Backup user name
|
||||
SSH_PASSWORD backup User password for authentication
|
||||
|
||||
How it Works
|
||||
The container automatically:
|
||||
|
||||
User Setup: Creates the backup user with configured credentials
|
||||
SSH Configuration: Generates host keys (RSA and Ed25519) if not present
|
||||
Server Start: Launches SSH daemon with SFTP support
|
||||
Monitoring: Watches for configuration changes and reloads SSH server as needed
|
||||
Key Components
|
||||
Dockerfile: Alpine-based image with OpenSSH, su-exec, and BorgBackup
|
||||
start_backup.sh: Main entrypoint script handling SSH setup and monitoring
|
||||
.drone.yml: CI/CD pipeline for multi-architecture builds
|
||||
Architecture
|
||||
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
||||
│ SSH Client │───▶│ Docker Container │───▶│ Backup Storage │
|
||||
│ (Your backup │ │ (Alpine Linux) │ │ (/home/backup)│
|
||||
│ application) │ │ │ │ │
|
||||
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
||||
│
|
||||
|
||||
│ (Your backup │ │ (Alpine Linux) │ │ (/home/backup)│
|
||||
Security Features
|
||||
Host Key Persistence: SSH host keys are generated once and persisted
|
||||
Configurable Authentication: Supports both password and public key authentication
|
||||
User Isolation: Runs SSH daemon as non-root user
|
||||
SFTP Subsystem: Secure file transfer protocol support
|
||||
Development
|
||||
Building Locally
|
||||
Testing
|
||||
CI/CD
|
||||
The project uses Drone CI for automated builds:
|
||||
|
||||
Development builds: Push to registry.dev.format.hu/backup-client
|
||||
Release builds: Tag events push to safebox/backup-client on DockerHub
|
||||
Multi-architecture: Supports both AMD64 and ARM64 platforms
|
||||
Contributing
|
||||
Fork the repository
|
||||
Create a feature branch
|
||||
Make your changes
|
||||
Test the Docker build
|
||||
Submit a pull request
|
||||
License
|
||||
This project is open source. Please check the license file for details.
|
||||
|
||||
|
Reference in New Issue
Block a user