rimgo/README.md

127 lines
4.5 KiB
Markdown
Raw Normal View History

2022-01-17 23:08:49 +00:00
<img src="https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/static/img/rimgo.svg" width="96" height="96" />
2022-01-17 23:08:00 +00:00
# rimgo
An alternative frontend for Imgur. Based on [rimgu](https://codeberg.org/3np/rimgu) and rewritten in Go.
2021-10-06 16:19:35 +00:00
2022-01-17 23:08:00 +00:00
<a href="https://www.gnu.org/licenses/agpl-3.0.en.html">
2022-01-17 23:15:58 +00:00
<img alt="License: AGPLv3" src="https://shields.io/badge/License-AGPL%20v3-blue.svg">
2022-01-17 23:08:00 +00:00
</a>
2021-10-06 16:19:35 +00:00
2022-01-17 23:08:00 +00:00
It's read-only and works without JavaScript. Images and albums can be viewed without wasting resources from downloading and running tracking scripts. No sign-up nags.
2021-10-06 16:19:35 +00:00
2022-01-17 23:08:00 +00:00
## Features
2021-10-07 13:24:37 +00:00
- [x] URL-compatible with i.imgur.com - just replace the domain in the URL
2022-01-17 23:22:46 +00:00
- [x] Images and videos (gifv, mp4)
2022-01-17 23:08:00 +00:00
- [ ] Galleries with comments
2021-10-07 13:24:37 +00:00
- [x] Albums
2022-01-17 23:08:00 +00:00
- [ ] User page
- [ ] Tag page
2021-10-07 13:24:37 +00:00
This is currently very early stage software. Some things left to implement (contributions welcome!):
2022-01-17 22:11:33 +00:00
- [x] Streaming (currently media is downloaded in full in rimgu before it's returned)
2021-10-07 13:24:37 +00:00
- [ ] Localization/internationalization
2022-01-17 22:11:33 +00:00
- [x] Pretty CSS styling (responsive?)
2022-01-17 23:22:46 +00:00
- [ ] Support for other popular image sites
2021-10-08 07:42:23 +00:00
- [ ] Filtering and exploration on user/tags pages
- [ ] Responsive scaling of videos on user/tags pages
2022-01-17 22:11:33 +00:00
- [x] Logo
2022-01-17 23:08:00 +00:00
Things that are considered out of scope:
2022-01-17 23:22:46 +00:00
* Uploading, commenting, voting, etc - rimgo is read-only.
2022-01-17 23:08:00 +00:00
* Authentication, serving HTTPS, rate limiting, etc - Use a reverse proxy or load balancer like Caddy, Traefik, or NGINX.
2022-01-17 23:22:46 +00:00
* Anything requiring JavaScript or the client directly interacting with upstream servers.
2022-01-17 23:08:00 +00:00
## Instances
Open an issue to have your instance listed here!
| Website | Country | Cloudflare |
|------------------------------------------------------------------------------------------------------------------------------------------|---------|------------|
2022-01-29 00:12:38 +00:00
| [i.bcow.xyz](https://i.bcow.xyz/) (official) | 🇨🇦 CA | |
| [rimgo.bcow.xyz](https://rimgo.bcow.xyz/) (official) | 🌐 Global | |
2022-01-18 14:21:39 +00:00
| [rimgo.pussthecat.org](https://rimgo.pussthecat.org/) | 🇩🇪 DE | |
2022-01-18 16:04:47 +00:00
| [img.riverside.rocks](https://img.riverside.rocks) | 🇺🇸 US | |
2022-01-20 22:46:45 +00:00
| [rimgo.totaldarkness.net](https://rimgo.totaldarkness.net/) | 🇨🇦 CA | |
2022-01-24 02:07:52 +00:00
| [rimgo.bus-hit.me](https://rimgo.bus-hit.me/) | 🇨🇦 CA | |
| [rimgo.esmailelbob.xyz](https://rimgo.esmailelbob.xyz) | 🇨🇦 CA | |
2022-01-18 21:08:18 +00:00
| [l4d4owboqr6xcmd6lf64gbegel62kbudu3x3jnldz2mx6mhn3bsv3zyd.onion](http://l4d4owboqr6xcmd6lf64gbegel62kbudu3x3jnldz2mx6mhn3bsv3zyd.onion/) | | |
2022-01-18 16:04:47 +00:00
| [jx3dpcwedpzu2mh54obk5gvl64i2ln7pt5mrzd75s4jnndkqwzaim7ad.onion](http://jx3dpcwedpzu2mh54obk5gvl64i2ln7pt5mrzd75s4jnndkqwzaim7ad.onion) | 🇺🇸 US | |
2022-01-29 00:12:38 +00:00
> rimgo.bcow.xyz is running on AWS Lambda@Edge for a global serverless deployment, there may be issues and CloudFront collects some anonymous usage statistics.
2022-01-17 23:08:00 +00:00
2022-01-17 23:30:51 +00:00
## Install
2022-01-20 21:47:21 +00:00
rimgo can run on any platform Go compiles on.
2021-10-06 16:19:35 +00:00
2022-01-17 23:30:51 +00:00
### Docker
Install Docker and docker-compose, then clone this repository.
```
git clone https://codeberg.org/video-prize-ranch/rimgo
cd rimgo
```
2021-10-06 16:19:35 +00:00
2022-01-17 23:30:51 +00:00
Edit the `docker-compose.yml` file using your favorite text editor.
2021-10-06 16:19:35 +00:00
```
2022-01-17 23:30:51 +00:00
nvim docker-compose.yml
2021-10-06 16:19:35 +00:00
```
Add a docker group.
```
sudo groupadd docker
```
Add your user to it.
```
sudo usermod -aG docker $USER
```
2022-01-17 23:30:51 +00:00
You can now run rimgo.
2021-10-06 16:19:35 +00:00
```
docker-compose up -d
2021-10-06 16:19:35 +00:00
```
*You may need to log out and then log back if you are on a linux server or if you are on desktop you need to restart your desktop session*
2021-10-06 16:19:35 +00:00
2022-01-17 23:30:51 +00:00
### Build from source
2021-10-06 16:19:35 +00:00
2022-01-17 23:30:51 +00:00
#### Requirements
* Go v1.16 or later
2021-10-06 16:19:35 +00:00
2022-01-17 23:30:51 +00:00
Clone the repository and `cd` into it.
2021-10-06 16:19:35 +00:00
```
2022-01-17 23:30:51 +00:00
git clone https://codeberg.org/video-prize-ranch/rimgo
cd rimgo
2021-10-06 16:19:35 +00:00
```
2022-01-17 23:30:51 +00:00
Build rimgo.
```
go build
```
2022-01-17 23:08:00 +00:00
2022-01-17 23:30:51 +00:00
Edit the config file using your preferred editor.
2021-10-06 16:19:35 +00:00
```
2022-01-17 23:30:51 +00:00
nvim config.yml
2021-10-06 16:19:35 +00:00
```
2022-01-17 23:30:51 +00:00
You can now run rimgo.
2022-01-17 23:08:00 +00:00
```
2022-01-17 23:30:51 +00:00
./rimgo
2022-01-17 23:08:00 +00:00
```
2021-10-07 06:21:37 +00:00
2022-01-17 23:30:51 +00:00
2021-10-06 16:19:35 +00:00
## Configuration
2022-01-17 23:08:00 +00:00
rimgo can be configured using environment variables or a config file.
2022-01-17 23:08:00 +00:00
### Environment variables
2022-01-17 23:08:00 +00:00
| Name | Default |
|-----------------------|-----------------|
| RIMGU_PORT | 3000 |
| RIMGU_HOST | localhost |
| RIMGU_ADDRESS | 0.0.0.0 |
| RIMGU_IMGUR_CLIENT_ID | 546c25a59c58ad7 |
## Contributing
2022-01-17 23:08:00 +00:00
PRs are welcome!
2021-10-08 19:32:18 +00:00
2022-01-17 23:22:46 +00:00
This software is released under the AGPL 3.0 license. In short, this means that if you make any modifications to the code and then publish the result (e.g. by hosting the result on a web server), you must publicly distribute your changes and declare that they also use AGPL 3.0.