Compare commits
2 Commits
0993d94294
...
3d1926a2a7
Author | SHA1 | Date | |
---|---|---|---|
|
3d1926a2a7 | ||
|
9ff8a8f092 |
91
README.md
91
README.md
@ -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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user