54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
# 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 (Ed25519) if not present
|
|
Server Start: Launches SSH daemon
|
|
|
|
## Key Components
|
|
Dockerfile: Alpine-based image with OpenSSH, su-exec, and BorgBackup
|
|
start_backup.sh: Main entrypoint script handling SSH setup
|
|
.drone.yml: CI/CD pipeline for multi-architecture builds
|
|
|
|
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
|
|
|
|
## Development
|
|
|
|
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
|
|
|
|
## License
|
|
This project is open source. Please check the license file for details.
|
|
|