Compare commits

...

2 Commits

Author SHA1 Message Date
b
3d1926a2a7 chore: merge
All checks were successful
Release to Gitea Container Registry / build_and_push (push) Successful in 6s
2024-11-05 15:34:09 +00:00
.
9ff8a8f092 chore(docs): readme updates 2024-11-05 15:27:45 +00:00

View File

@ -1,72 +1,57 @@
# 🌸 Blossom-server # 🌸 Blossom-server
blossom-server is a Typescript implementation of a [Blossom Server](https://github.com/hzrd149/blossom/blob/master/Server.md) [Blossom Server](https://git.nostrdev.com/stuff/blossom-cloudron) packaged to run as a [cloudron](https://www.cloudron.io/)app. Supports policies through the `/app/data/config.yaml` file.
## Supported BUDs The app is not yet in the Cloudron App Store, so for now you have to use the Cloudron CLI to install.
- BUD-01 ### Prerequisites
- `GET /<sha256>` Retrieve blob
- `HEAD /<sha256>` Check blob
- BUD-02
- `PUT /upload` Upload blob
- `GET /list<pubkey>` List blobs
- `DELETE /<sha256>` Delete blob
- BUD-04
- `PUT /mirror` Mirror blob
- BUD-06
- `HEAD /upload` Upload check
## Running with npx Install the [Cloudron CLI](https://docs.cloudron.io/packaging/cli/) - `npm install -g cloudron`
This app is also packaged as an npm module which you can easily run ### Installation
```sh ```
# copy the example config # Login with your cloudron credentials
wget https://raw.githubusercontent.com/hzrd149/blossom-server/master/config.example.yml -O config.yml cloudron login your.instance.com
# run using npx
npx blossom-server-ts # Clone the project and change into it
git clone https://git.nostrdev.com/stuff/blossom-cloudron
cd blossom-cloudron
# Install latest version
cloudron install --image git.nostrdev.com/stuff/blossom-cloudron:latest
``` ```
## Running with docker You will then be prompted for a location - so put the domain, eg `blossom.yourdomain.com`
An example config file can be found [here](./config.example.yml) ## Configuration
```sh The config file is under `/app/data/config.yml`
# create data volume
docker volume create blossom_data If you are using Blossom for a small subset of npubs, and don't need the discoverability feature, you could make the following changes:
# run container
docker run -v blossom_data:/app/data -v $(pwd)/config.yml:/app/config.yml -p 3000:3000 ghcr.io/hzrd149/blossom-server:master ```
discovery:
# find files by querying nostr relays
nostr:
enabled: false
``` ```
You can also run it using docker compose with the [`docker-compose.yml`](./docker-compose.yml) file and
## Running from source ```
rules:
This project uses [pnpm](https://pnpm.io/) to manage dependencies. It needs to be installed first in order to build the app # mime type of blob
- type: "*"
Next clone the repo, install the dependencies, and build expiration: 2 years
pubkeys:
```sh - "xxxnostrHEXkeyxxx" # comment
git clone https://github.com/hzrd149/blossom-server.git
cd blossom-server
pnpm install
cd admin && pnpm install && cd ../
pnpm build
``` ```
Next copy the config and modify it and
```sh
cp config.example.yml config.yml
nano config.yml
``` ```
upload:
And finally start the app # only check rules that include "pubkeys"
requirePubkeyInRule: true
```sh
pnpm start
# or
node .
``` ```
Once the server is running you can open `http://localhost:3000` to access the server