Go to file
kuantum 9b5af0aeb6 harden docker-compose.yml (#99)
`user: nobody`: the least privileged account.
`read_only: true`: this container doesn't write anything to the filesystem, this removes a vector.
`security_opt`: disallows the container to grab more privileges.
`cap_drop`: this container doesn't need any capabilities, drop them.
`networks`: put `rimgo` into its own network so it cannot see other containers by default.

Reviewed-on: https://codeberg.org/video-prize-ranch/rimgo/pulls/99
Co-authored-by: kuantum <kuantum@noreply.codeberg.org>
Co-committed-by: kuantum <kuantum@noreply.codeberg.org>
2023-03-28 21:33:03 +00:00
api Seperate API from UI 2023-01-01 15:12:03 -05:00
pages Seperate API from UI 2023-01-01 15:12:03 -05:00
static CSS cleanup 2022-12-20 19:35:48 -05:00
utils Use 429 error page for 429 errors from Imgur API 2022-10-05 22:16:57 -04:00
views Use rimgo.codeberg.page for 429 error 2023-01-01 15:05:30 -05:00
.dockerignore Add Dockerfile 2021-10-07 01:01:36 +09:00
.env.example Switch to Fiber cache (closes #63) 2022-10-14 20:27:37 -04:00
.gitignore Add support for .env configuration and privacy page (closes #44) 2022-08-04 19:41:55 -04:00
Dockerfile Add support for .env configuration and privacy page (closes #44) 2022-08-04 19:41:55 -04:00
LICENSE Add README, LICENSE 2021-10-07 01:19:35 +09:00
README.md Add instance i.01r.xyz (#92) 2023-03-08 00:26:43 +00:00
docker-compose.yml harden docker-compose.yml (#99) 2023-03-28 21:33:03 +00:00
go.mod Update dependencies 2023-03-07 19:18:31 -05:00
go.sum Update dependencies 2023-03-07 19:18:31 -05:00
instances.json Add instance i.01r.xyz (#92) 2023-03-08 00:26:43 +00:00
main.go Update 'main.go' 2023-03-11 18:26:30 +00:00

README.md

rimgo

An alternative frontend for Imgur. Originally based on rimgu.

License: AGPLv3 Matrix

Table of Contents

Features

  • Lightweight
  • No JavaScript
  • No ads or tracking
  • No sign up or app install prompts
  • Bandwidth efficient - automatically uses newer image formats (if enabled)

Comparison

Comparing rimgo to Imgur.

Speed

Tested using Google PageSpeed Insights.

rimgo Imgur
Performance 91 28
Request count 29 340
Resource Size 218 KiB 2,542 KiB
Time to Interactive 1.6s 23.8s

Privacy

Imgur collects information about your device and uses tracking cookies for advertising, this is mentioned in their privacy policy. Blacklight found 31 trackers and 87 third-party cookies.

See what cookies and trackers Imgur uses and where your data gets sent: https://themarkup.org/blacklight?url=imgur.com

Usage

Replace imgur.com or i.imgur.com with the instance domain. For i.stack.imgur.com, replace i.stack.imgur.com with the instance domain and add stack/ before the media ID. You can use a browser extension to do this automatically.

Imgur: https://imgur.com/gallery/j2sOQkJ -> https://rimgo.bcow.xyz/gallery/j2sOQkJ Stack Overflow: https://i.stack.imgur.com/KnO3v.jpg?s=64&g=1 -> https://rimgo.bcow.xyz/stack/KnO3v.jpg?s=64&g=1

Instances

Open an issue to have your instance listed here! Instance privacy information is required for the instance list, see Environment variables.

For more details on instance privacy, see https://librarian.codeberg.page/docs/usage/instance-privacy/

Clearnet

To help distribute load, consider using instances other than the official one.

URL Country Provider Privacy Notes
rimgo.pussthecat.org 🇩🇪 DE Hetzner ⚠️ Data collected
rimgo.totaldarkness.net 🇨🇦 CA Vultr Data not collected
rimgo.bus-hit.me 🇨🇦 CA Oracle Data not collected
rimgo.esmailelbob.xyz 🇨🇦 CA OVH ⚠️ Data collected
imgur.artemislena.eu 🇩🇪 DE Vodafone Deutschland Data not collected Self-hosted, provider is ISP
rimgo.vern.cc 🇺🇸 US OVHCloud Data not collected Edited theme
rim.odyssey346.dev 🇫🇷 FR Trolling Solutions (OVH) Data not collected
rimgo.privacytools.io 🇸🇪 SE Cloudflare Data not collected
i.habedieeh.re 🇨🇦 CA Oracle Cloud Data not collected
rimgo.hostux.net 🇫🇷 FR Gandi ⚠️ Data collected
ri.zzls.xyz 🇨🇱 CL TELEFÓNICA CHILE Data not collected Self-hosted, provider is ISP
rimgo.marcopisco.com 🇵🇹 PT Cloudflare ⚠️ Data collected
rimgo.lunar.icu 🇩🇪 DE Cloudflare Data not collected
imgur.010032.xyz 🇰🇷 KR Cloudflare Data not collected
rimgo.kling.gg 🇳🇱 NL RamNode Data not collected
i.01r.xyz 🇺🇸 US Cloudflare Data not collected

Tor

URL Privacy Notes
rimgo.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion Data not collected Onion of rimgo.esmailelbob.xyz
rimgo.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion Data not collected Onion of rimgo.vern.cc
imgur.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion Data not collected Onion of imgur.artemislena.eu
rim.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion ⚠️ Data collected
tdp6uqjtmok723suum5ms3jbquht6d7dssug4cgcxhfniatb25gcipad.onion Data not collected Onion of rimgo.privacytools.io
i.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion Data not collected Onion of i.habedieeh.re
rimgo.zzlsghu6mvvwyy75mvga6gaf4znbp3erk5xwfzedb4gg6qqh2j6rlvid.onion Data not collected Onion of ri.zzls.xyz
tdn7zoxctmsopey77mp4eg2gazaudyhgbuyytf4zpk5u7lknlxlgbnid.onion/ Data not collected Onion of rimgo.kling.gg

I2P

URL Privacy Notes
rimgo.i2p Data not collected i.habedieeh.re on I2P
rimgov7l2tqyrm5txrtvhtnfyrzkc5d7ipafofavchbnnyog4r3q.b32.i2p Data not collected Same as rimgo.i2p
rimgo.zzls.i2p Data not collected ri.zzls.xyz on I2P
p57356k2xwhxrg2lxrjajcftkrptv4zejeeblzfgkcvpzuetkz2a.b32.i2p Data not collected Same as rimgo.zzls.i2p
ovzamsts5czfx3jasbbhbccyyl2z7qmdngtlqxdh4oi7abhdz3ia.b32.i2p Data not collected rimgo.kling.gg on I2P

LibRedirect

Use LibRedirect to automatically redirect Imgur links to rimgo!

GreaseMonkey script

There is a script to redirect Imgur links to rimgo. https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/imgur-to-rimgo.user.js

Redirector

You can use the Redirector extension to redirect Imgur links to rimgo with the configuration below:

  • Description: Imgur -> rimgo
  • Example URL: https://imgur.com/a/H8M4rcp
  • Include pattern: ^https?://i?.?imgur.com(/.*)?$
  • Redirect to: https://rimgo.example.com$1
  • Pattern type: Regular Expression
  • Advanced options:
    • Apply to:
      • Main window (address bar)
      • Images

For Stack Overflow images:

  • Description: Stack Overflow Imgur -> rimgo
  • Example URL: https://i.stack.imgur.com/BTKqD.png?s=128&g=1
  • Include pattern: ^https?://i\.stack\.imgur\.com(/.*)?$
  • Redirect to: https://rimgo.example.com/stack$1
  • Pattern type: Regular Expression
  • Advanced options:
    • Apply to:
      • Images

Install

rimgo can run on any platform Go compiles on.

It is strongly recommended to use Caddy as your reverse proxy. Caddy is simple to configure, automatically manages your TLS certificates, and provides better performance with support for HTTP/2 and /3 (allow UDP port 443 in your firewall to use HTTP/3).

Install Docker and docker-compose, then clone this repository.

git clone https://codeberg.org/video-prize-ranch/rimgo
cd rimgo

Edit the docker-compose.yml file using your favorite text editor.

nvim docker-compose.yml

You can now run rimgo.

sudo docker-compose up -d

Automatic updates

Watchtower can automatically update your Docker containers.

Create a new docker-compose.yml file or add the watchtower section to your existing docker-compose.yml file.

version: "3"
services:
  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Build from source

Requirements

  • Go v1.16 or later

Clone the repository and cd into it.

git clone https://codeberg.org/video-prize-ranch/rimgo
cd rimgo

Build rimgo.

go build

You can now run rimgo.

./rimgo

To include version information use:

go build -ldflags "-X codeberg.org/video-prize-ranch/rimgo/pages.VersionInfo=$(date '+%Y-%m-%d')-$(git rev-list --abbrev-commit -1 HEAD)"

(optional) You can use a .env file to set environment variables for configuration.

cp .env.example .env
nvim .env

Configuration

rimgo can be configured using environment variables. The path to the .env file can be changed the -c flag.

Environment variables

For more details on instance privacy, see https://librarian.codeberg.page/docs/usage/instance-privacy/

Name Default Note
PORT 3000
ADDRESS 0.0.0.0
IMGUR_CLIENT_ID 546c25a59c58ad7
FORCE_WEBP 0
PRIVACY_POLICY Optional, URL to privacy policy
PRIVACY_MESSAGE Optional, message to display on privacy page
PRIVACY_COUNTRY
PRIVACY_PROVIDER
PRIVACY_CLOUDFLARE
PRIVACY_NOT_COLLECTED
PRIVACY_IP
PRIVACY_URL
PRIVACY_DEVICE
PRIVACY_DIAGNOSTICS

Contributing

Pull requests are welcome! If you have any questions or bug reports, open an issue.

License

This software is released under the AGPL-3.0 license. If you make any modifications to the code and distribute it (including use on a network server), you must publicly distribute your changes and release them under the AGPL-3.0.