A Go and Vue based URL shortener, pastebin and file uploader
7.8K
Short{Paste} is open-source software written in Go and VueJS. It is a minimalistic shortener that combines three things that need shortening: links, files, and text. It is a self-hosted alternative to many popular services like paste bin and using dropbox to send a file to someone quickly.
The Go backend handles saving files, links, and text in DB and filesystem as needed, while the Vue UI provides a pretty view for you to add and review content. Added bonus, it tracks hit counts too!
The whole backend packages to a single binary, and I bundled the app as a docker container based on alpine favored for its tiny size. To run this yourself, execute the command below.
docker run -d \
-p 8080:8080 \
-v ${PWD}/shortpaste/:/root/.shortpaste \
adyanth/shortpaste:latest
The command will publish the application on port 8080, making it available on http://localhost:8080/ and use the bind-mounted folder called shortpaste in your current working directory to save the SQLite DB, the files, and texts published.
If you prefer docker-compose, here is an example deployment.
With docker, you can build this yourself. A Dockerfile is provided at the root of this repository.
It uses a multi-stage build consisting of three stages:
dist folder with resources.dist are copied and served.You can customize the behavior using environment variables. Here is a list of configurable parameters.
| Environment Variable | Default Value | Behaviour |
|---|---|---|
SP_BIND_ADDR | ":8080" | Sets the bind-address inside the container. |
PORT | If set, it overrides the SP_BIND_ADDR to use the given port on all interfaces (support for Heroku deployment) | |
SP_STORAGE_PATH | "~/.shortpaste" | Sets the location for saving data inside the container. |
SP_307_REDIRECT | Setting this to anything causes a 307 redirect to be sent instead of showing the landing page for shortened links. | |
SP_USERNAME | admin | Sets the username to login to the UI (only applies to creating resources, links will still work fine) |
SP_PASSWORD | admin | Sets the password to login to the UI (only applies to creating resources, links will still work fine) |
SP_NOAUTH | Setting this to anything bypasses authentication for creating resources. |
Here are some screenshots to get a taste of it, see the demo for more :)
| Type | Create | View |
|---|---|---|
| Links | ![]() | ![]() |
| Text | ![]() | ![]() |
| Files | ![]() | ![]() |
Content type
Image
Digest
sha256:557cc6afb…
Size
11.1 MB
Last updated
about 4 years ago
docker pull adyanth/shortpaste