An easy to use, selfhostable image sharing service like Imgur with built in converting
Go to file
rubikscraft ba7f1db412
fix bug in chrome
2022-08-29 15:57:10 +02:00
.vscode upgrade everything 2022-08-26 12:38:05 +02:00
.yarn fix bug in chrome 2022-08-29 15:57:10 +02:00
backend fix bug in chrome 2022-08-29 15:57:10 +02:00
branding/logo Rebrand to picsur 2022-02-27 20:27:22 +01:00
frontend fix bug in chrome 2022-08-29 15:57:10 +02:00
shared fix bug in chrome 2022-08-29 15:57:10 +02:00
support Fix everything needed for correct build 2022-08-28 16:31:20 +02:00
.dockerignore Fix everything needed for correct build 2022-08-28 16:31:20 +02:00
.editorconfig upgrade everything 2022-08-26 12:38:05 +02:00
.gitignore allow conversion between animated and still 2022-08-27 17:25:39 +02:00
.nvmrc upgrade everything 2022-08-26 12:38:05 +02:00
.prettierignore update and migrate, add prettier 2022-06-05 12:16:31 +02:00
.prettierrc.yaml update and migrate, add prettier 2022-06-05 12:16:31 +02:00
.yarnrc.yml upgrade everything 2022-08-26 12:38:05 +02:00
LICENSE Rebrand to picsur 2022-02-27 20:27:22 +01:00
README.md update readme 2022-08-28 17:00:44 +02:00
SECURITY.md Create SECURITY.md 2022-03-28 13:59:16 +02:00
package.json fix bug in chrome 2022-08-29 15:57:10 +02:00
tsconfig.base.json Format everything 2022-06-05 12:20:16 +02:00
yarn.lock fix bug in chrome 2022-08-29 15:57:10 +02:00

README.md

Picsur


Totally not an imgur clone

I couldn't really find any open source project that allowed you to easily host images. So I decided to create one.

It feels like a hybrid between Imgur and Pastebin.

Beta

Right now this software is still in beta, and many things are still missing, or will be changed in the future. But it does function, so feel free to give it a try.

Demo

You can view a live demo here: https://picsur.rubikscraft.nl/

The images are deleted every five minutes, and the maximum filesize is 16MB. But it should give you an indication of how it works.

Features

Here is a list of done features, and what is planned. For a more detailed list, you can always visit the project.

Every featured marked here should work in the latest release.

  • Uploading and viewing images

  • Anonymous uploads

  • User accounts

  • User roles and permissions

  • Proper CORS restrictions

  • Exif stripping

  • Ability to keep original

  • Support for many formats

    • QOI
    • JPG
    • PNG
    • WEBP (animated supported)
    • TIFF
    • BMP
    • GIF (animated supported)
  • Convert images

  • Edit images

    • Resize
    • Rotate
    • Flip
    • Strip transparency
    • Negative
    • Greyscale
  • Deletable images

  • Proper DB migrations

  • Show own images in list

  • Correct previews on chats

  • Expiring images

  • White mode

  • ShareX endpoint

  • Arm64 image

Bugs

If you encounter any bugs or oddities, please open an issue here. Cause without feedback I'll never know they exists.

Star

If you like this project, don't forget to give it a star. It tells me that I'm not wasting my time on something that people don't like.

Running

You easily run this service yourself via Docker. Here is an example docker-compose file:

version: '3'
services:
  picsur:
    image: ghcr.io/rubikscraft/picsur:latest
    container_name: picsur
    ports:
      - '8080:8080'
    environment:
      # PICSUR_HOST: '0.0.0.0'
      # PICSUR_PORT: 8080

      PICSUR_DB_HOST: picsur_postgres
      # PICSUR_DB_PORT: 5432
      # PICSUR_DB_USERNAME: picsur
      # PICSUR_DB_PASSWORD: picsur
      # PICSUR_DB_DATABASE: picsur

      # PICSUR_ADMIN_PASSWORD: picsur

      # PICSUR_JWT_SECRET: CHANGE_ME
      # PICSUR_JWT_EXPIRY: 1d

      # PICSUR_MAX_FILE_SIZE: 128000000
      # PICSUR_STATIC_FRONTEND_ROOT: "/picsur/frontend/dist"
    restart: unless-stopped
  picsur_postgres:
    image: postgres:14-alpine
    container_name: picsur_postgres
    environment:
      POSTGRES_DB: picsur
      POSTGRES_PASSWORD: picsur
      POSTGRES_USER: picsur
    restart: unless-stopped
    volumes:
      - picsur-data:/var/lib/postgresql/data
volumes:
  picsur-data:

Api

Here is a usually up to date documentation of the api:

Run in Postman