ybFeed
Personal micro feed where you can post snippets of text or images.
Personal micro feed where you can post snippets of text or images.
### 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  ### 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 ```