An open API service indexing awesome lists of open source software.

https://github.com/c8121/asset-storage

Basically a DAM-System (Digital Asset Management). Includes a Webserver providing a SPA (Single Page Application) to browse the storage content.
https://github.com/c8121/asset-storage

dam golang spa vuejs

Last synced: 3 months ago
JSON representation

Basically a DAM-System (Digital Asset Management). Includes a Webserver providing a SPA (Single Page Application) to browse the storage content.

Awesome Lists containing this project

README

          

# asset-storage

Basically a DAM-System (Digital Asset Management). Includes a Webserver providing a SPA (Single Page Application)
to browse the storage content.

> [!NOTE]
> Work in progress, things might change and be not downward compatible

## Goals

**DAM**: Manage Pictures, Documents...

**Portable**: Runs on Linux, Windows, Mac. No installation required, just copy. Can be copied to a external HD or Stick
which then can be used to store assets from different devices.

**Server included**: Can be used on a NAS for example.

**Deduplication**: Same file is stored automatically only once, no matter how often it was added.

**Resilience**: Files are stored in directories, one per time period, to enable quick backups even on large storages. Meta-Data stored separately in JSON-Format. Database can be recreated from Meta-Data and vice versa.

## Features

Store files into an archive directory

- Deduplicated (same file only once, determined by content-hash).
- Organized in subdirectories, one per time period. Old directories will no be touched again to enable incremental backups.
- Meta-data is stored separately and updated when new files are added or existing files with different origin/owner.
- A database is created to be able to find/browse data.
- HTTP-Server included for Web&REST-Service.
- SFTP/SCP/RSYNC-Server included to receive files from remote devices.

## Apps

### add

To add new files to the archive

add [-skip-meta] [-check-hash] [-gzip] [-maxmem ] [-base ] [-name ] [-r]

### spa-server

A HTTP Server which provides a Single-Page-Application to browse the storage

> [!NOTE]
> This is work in progress, important features like TLS is missing at the moment

spa-server [-gzip] [-xor ] [-base ] [-spa ] [-listen ]

### rest-server

A HTTP Server which provides a REST-API to access the storage. This server is included in `spa-server`.

> [!NOTE]
> This is work in progress, important features like TLS is missing at the moment

rest-server [-gzip] [-xor ] [-base ] [-listen ]

### metadata-db-create

Update meta-data-database by reading all meta-data files and writing contents to database.

Not required if database is intact, because `add` also updates the database.

metadata-db-create [-base ]

### ssh-server

Accept files from remote computers via SFTP, SCP or RSYNC

*Note: This is work in progress, important features at the moment*

ssh-server [-host-key ] [-listen ]

### user-edit

Add users, set/update passwords. These users will have access to Servers (Web, SFTP, SCP, RSYNC)

user-edit [-a] -u username

Use `-a` flag to add a new user.

## App Commandline args

Commonly used commandline arguments for asset-storage apps:

| Parameter | Description |
|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| base **Important:** Cannot be mixed, use always or never for one storage. |
| maxmem **Important:** Cannot be mixed, use always with same key or never for one storage.
**Important:** Use same key for all apps with same storage directory |
| listen