Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ybizeul/ybFeed
Personal micro feed where you can post snippets of text or images and files.
https://github.com/ybizeul/ybFeed
pastebin self-hosted
Last synced: about 19 hours ago
JSON representation
Personal micro feed where you can post snippets of text or images and files.
- Host: GitHub
- URL: https://github.com/ybizeul/ybFeed
- Owner: ybizeul
- License: mit
- Created: 2023-08-07T14:14:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-08T14:47:27.000Z (3 months ago)
- Last Synced: 2024-11-08T15:37:23.960Z (3 months ago)
- Topics: pastebin, self-hosted
- Language: Go
- Homepage:
- Size: 16.7 MB
- Stars: 39
- Watchers: 1
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### Introduction
**ybFeed** is a personal micro feed where you can post snippets of
text or images.The primary use case is to share information between computers when you don't
have the possibility to copy/paste, like on a restricted VDI environment.Open the feed on your local computer, and the remote one, then everything will
be kept in sync when you add or remove items.### Concepts
On ybFeed home page, you are invited to create a feed with a unique name.
Once on a feed, you can paste data in it, text or images, they will be
displayed with the newest items at the top.You can then decide to share the feed two different ways :
- Copy a secret link to the feed, that you can paste on a different computer,
you will be automatically authenticated
- Set a temporary 4 digit PIN. You then go to another computer and open the
feed. You will be prompted for the PIN to unlock it.### Screenshot
![Screenshot](assets/screenshot.png)
### Caveats
This is just a side project I'm working on, so there is probably lots of issues.
Feel free to open GitHub issues to reuest features or bug fixes.
Here are some I already identified :
- Paste might not work over non secured connections (https), this is a
limitation as a security measure with some web browsers
- ybFeed relies on a cookie to authenticate a session, if the cookie is lost
there is no easy way to retrieve the feed (you can get it back from the
`config.json` file in the feed directory)
- Most modern browser won't honor long cookie lifetime, you might have to
recover the secret from `config.json` if it happens.
- Security could probably be improved, tokens and PINs are stored in clear on
the filesystem
- No rate control or capacity limits, quite exposed to flooding as it is### Environment variables
| Variable name | Description |
|---------------|-------------|
| `YBF_DATA_DIR` | points to an alternative direcotry to store data, default is `./data/` in current directory. |
| `YBF_HTTP_PORT` | TCP port to run the server, default is `8080`. |
| `YBF_LISTEN_ADDR` | IP address to bind, default is `0.0.0.0`. |
| ` YBF_MAX_UPLOAD_SIZE` | Maximum size for added items an files, default is 5MB. |### Installation
#### Using Docker registry
Use this method to treat youself with a quick demo of the most current version
```
mkdir data
docker run -p 8080:8080 -v $(pwd)/data:/data ghcr.io/ybizeul/ybfeed:latest
```You can now point your browser to http://localhost:8080/
#### Using Docker from source
Use this method if you're interested by the code and hacking around
```
git clone https://github.com/ybizeul/ybFeed.git
cd ybFeed
docker compose up -d
```You can now point your browser to http://localhost:8080/
### Building
#### Using Makefile
```
make
```#### Manually
Once you cloned the repository, issue the following commands :
```
cd web/ui/# Install node dependencies
npm install# Build UI
npm run build# Build Go binary
cd ../../
go build -o ybFeed cmd/ybfeed/*.go# Run ybFeed
./ybFeed# Point your browser to port http://localhost:8080
```#### Building container
```
docker build . -t ybfeed
```