https://github.com/rarimo/ipfs-svc
https://github.com/rarimo/ipfs-svc
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rarimo/ipfs-svc
- Owner: rarimo
- License: mit
- Created: 2025-02-17T10:59:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-13T13:05:27.000Z (9 months ago)
- Last Synced: 2025-11-13T15:09:23.185Z (9 months ago)
- Language: Go
- Size: 4.7 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ipfs-svc
## Description
This service provides IPFS uploading functionality
## Install
```
git clone github.com/rarimo/ipfs-svc
cd ipfs-svc
go build main.go
export KV_VIPER_FILE=./config.yaml
./main run service
```
## Documentation
We do use openapi:json standard for API. We use swagger for documenting our API.
To open online documentation, go to [swagger editor](http://localhost:8080/swagger-editor/) here is how you can start it
```
cd docs
npm install
npm start
```
To build documentation use `npm run build` command,
that will create open-api documentation in `web_deploy` folder.
To generate resources for Go models run `./generate.sh` script in root folder.
use `./generate.sh --help` to see all available options.
Note: if you are using Gitlab for building project `docs/spec/paths` folder must not be
empty, otherwise only `Build and Publish` job will be passed.
## Running from docker
Make sure that docker installed.
use `docker run ` with `-p 8080:80` to expose port 80 to 8080
```
docker build -t github.com/rarimo/ipfs-svc .
docker run -e KV_VIPER_FILE=/config.yaml github.com/rarimo/ipfs-svc
```
## Running from Source
* Set up environment value with config file path `KV_VIPER_FILE=./config.yaml`
* Provide valid config file
* Launch the service with `run service` command
## Testing and Local Development
### Setting up IPFS locally
1. **Install IPFS:**
```bash
# MacOS
brew install ipfs
# Linux
wget https://dist.ipfs.tech/kubo/v0.22.0/kubo_v0.22.0_linux-amd64.tar.gz
tar -xvzf kubo_v0.22.0_linux-amd64.tar.gz
cd kubo
sudo bash install.sh
```
2. **Initialize and start IPFS:**
```bash
ipfs init
ipfs daemon
```
3. **Upload endpoint:**
Upload JSON:
```bash
curl -X POST \
http://localhost:8000/integrations/ipfs-svc/v1/public/upload \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"type": "upload_json",
"attributes": {
"metadata": {
"name": "Test",
"description": "Test IPFS upload"
}
}
}
}'
```
Upload file:
```bash
curl -X POST \
http://localhost:8000/integrations/ipfs-svc/v1/public/upload-file \
-H 'Content-Type: multipart/form-data' \
-F 'file=@/path/to/file.jpg'
```
4. **Verify uploaded content:**
```bash
ipfs cat
```
### Third-party services
## Contact
Responsible //
The primary contact for this project is //