DataHoarder
dbcd5a6cc9
All checks were successful
continuous-integration/drone/push Build is passing
70 lines
1.6 KiB
Markdown
70 lines
1.6 KiB
Markdown
# OrbitalBeat
|
|
|
|
Content-addressable storage serving of blobs.
|
|
|
|
|
|
## Dependencies
|
|
|
|
### Go >= 1.18
|
|
|
|
### Postgres >= 14
|
|
|
|
## Usage via docker-compose
|
|
|
|
### Initial setup
|
|
```bash
|
|
|
|
# Copy example environment file
|
|
cp -v .env.example .env
|
|
|
|
# Edit .env (use whatever editor you prefer)
|
|
# TRUSTED_KEYS are public keys from FinalCommander instances
|
|
# At least add a valid DATA_MOUNT_PATH and TRUSTED_KEYS, adjust LISTEN_PORT as desired.
|
|
# Self-signed certificates will be generated if certificate entries are left empty.
|
|
nano .env
|
|
|
|
# Create/start postgres database
|
|
docker-compose up -d db
|
|
|
|
# Insert schema
|
|
docker-compose exec -T --env PGPASSWORD=orbeat db psql --host db --username orbeat orbeat < schema.sql
|
|
|
|
# Start everything else
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Adding files to database
|
|
```bash
|
|
# Add files to OrbitalBeat
|
|
# This will scan all files under DATA_MOUNT_PATH
|
|
./scripts/add.sh
|
|
|
|
# Add specific folder to OrbitalBeat
|
|
./scripts/add.sh /mnt/storage/folder/to/add
|
|
```
|
|
|
|
OrbitalBeat assumes that as long as a file exists in the database, it is immutable (contents did NOT change, besides deletion).
|
|
|
|
Only existence of file and size are checked. **It is safe to delete files from backing storage.**
|
|
|
|
Multiple hash duplicates can exist, and OrbitalBeat will check and return the first working one.
|
|
|
|
Digest values are sent on each HTTP response, which a supporting client can use to verify the response.
|
|
|
|
### Update
|
|
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
### Certbot notes
|
|
* Use pip certbot
|
|
* Edit .env to add paths to certificates
|
|
|
|
```bash
|
|
$ certbot certonly \
|
|
--standalone \
|
|
--key-type=ecdsa --elliptic-curve=secp256r1 \
|
|
--domain <domain> \
|
|
--post-hook "docker restart orbitalbeat_orbeat_1"
|
|
``` |