Code Monkey home page Code Monkey logo

chevereto / chevereto Goto Github PK

View Code? Open in Web Editor NEW
362.0 3.0 29.0 5.82 MB

Self-hosted Image and Video Hosting solution, your own Flickr/imgur media sharing alternative with your rules.

Home Page: https://chevereto.com

License: GNU Affero General Public License v3.0

PHP 80.07% CSS 7.61% JavaScript 12.08% Hack 0.19% HTML 0.06%
image-host image-hosting image-sharing image-sharing-website self-hosted video-hosting video-sharing media-hosting media-sharing

chevereto's Introduction

Chevereto: Ultimate image and video sharing software

πŸ”” Subscribe to don't miss any update regarding Chevereto.

Chevereto

Chevereto

Chevereto Docs Chevereto Community Chevereto Discord Chevereto Demo AGPL-3.0-only Legacy stars Awesome F/OSS

Chevereto enables to create a media sharing website on your own server. It's your hosting and your rules, say goodbye to closures and restrictions. ⭐️ Live demo

Chevereto is a turnkey system which main use case is to provide a self-hosted platform for content creators, communities and businesses. It's features are all about media sharing, with a strong focus on user experience, privacy and security. On its pro edition Chevereto excels as a content management system with heavy business related features that you won't get on other systems.

screen

Files supported

With Chevereto you can upload and share the following media types from device file browser, drag and drop, on-the-fly device camera (video and photos), clipboard, URL, ShareX and via API.

  • image/jpeg
  • image/gif
  • image/png
  • image/webp
  • image/bmp
  • video/quicktime
  • video/mp4
  • video/webm

Documentation

Chevereto is so feature-rich, mature and robust that we need three layers of documentation for it. The Chevereto software project started on 2007 and it has been actively maintained since then.

Features

Note: This is the repository for Chevereto free edition. This software is intended for personal usage as it doesn't contain all the features of commercial editions. This is a short, not exhaustive, list of features available on Chevereto editions. Feel free to request a free demo of the pro edition at chevereto.com to see all the features in action.

Uploading features

Feature Free Lite Pro
Image & Video uploads βœ… βœ… βœ…
JPEG PNG BMP GIF WEBP MOV MP4 WEBM βœ… βœ… βœ…
ShareX support βœ… βœ… βœ…
360Β° images βœ… βœ… βœ…
Strip image EXIF data βœ… βœ… βœ…
Clipboard upload βœ… βœ… βœ…
Drag-and-drop upload βœ… βœ… βœ…
File delete link βœ… βœ… βœ…
Time-based expirable uploads βœ… βœ… βœ…
Thumbs & medium sized images βœ… βœ… βœ…
Video frame image βœ… βœ… βœ…
Duplicate media detection βœ… βœ… βœ…
Auto file naming options βœ… βœ… βœ…
Storage modes (date, direct) βœ… βœ… βœ…
Upload user interface (container, route) βœ… βœ… βœ…
Upload plugin (PUP.js) – βœ… βœ…
Watermark image uploads – – βœ…
Upload moderation – – βœ…
External storage servers – – βœ…
Bulk content importer – – βœ…

Sharing features

Feature Free Lite Pro
Direct link sharing βœ… βœ… βœ…
Sharing button βœ… βœ… βœ…
Media oEmbed βœ… βœ… βœ…
HTML, Markdown & BBCode βœ… βœ… βœ…
Embed codes on upload complete βœ… βœ… βœ…
Embed codes on selected media βœ… βœ… βœ…
Embed codes media page βœ… βœ… βœ…

User features

Feature Free Lite Pro
User profiles βœ… βœ… βœ…
Private user profiles βœ… βœ… βœ…
User-based API βœ… βœ… βœ…
Multiple users & management – βœ… βœ…
Guest API – βœ… βœ…

Social features

Feature Free Lite Pro
Call-to-action album buttons βœ… βœ… βœ…
Random button βœ… βœ… βœ…
Notifications – βœ… βœ…
List users – βœ… βœ…
Followers – – βœ…
Likes – – βœ…

Organization features

Feature Free Lite Pro
Albums & Sub-albums βœ… βœ… βœ…
Categories βœ… βœ… βœ…
Search βœ… βœ… βœ…
Media & Album listings βœ… βœ… βœ…
Configurable list items per page βœ… βœ… βœ…
Classic + Endless scroll listings βœ… βœ… βœ…
Listing viewer βœ… βœ… βœ…
Image listing size (fixed, fluid) βœ… βœ… βœ…
Album listing requirement βœ… βœ… βœ…
Listing columns per device βœ… βœ… βœ…
Explore & Discovery – βœ… βœ…
Advanced search – βœ… βœ…

Security features

Feature Free Lite Pro
Two-Factor Authentication (2FA) βœ… βœ… βœ…
Encrypt secrets βœ… βœ… βœ…
Crypt-salted IDs βœ… βœ… βœ…
IP banning – – βœ…
Stop words – – βœ…

Admin features

Feature Free Lite Pro
Dashboard (admin UI) βœ… βœ… βœ…
System stats & usage βœ… βœ… βœ…
Website privacy mode (public, private) βœ… βœ… βœ…
Default timezone selection βœ… βœ… βœ…
Uploadable file extensions βœ… βœ… βœ…
Guest uploads auto delete βœ… βœ… βœ…
Upload threads βœ… βœ… βœ…
Upload maximum image size βœ… βœ… βœ…
Upload Exif removal βœ… βœ… βœ…
Upload max file size (users and guest) βœ… βœ… βœ…
Upload path βœ… βœ… βœ…
Upload file naming βœ… βœ… βœ…
Upload thumb size βœ… βœ… βœ…
Upload medium size and dimension βœ… βœ… βœ…
Semantics βœ… βœ… βœ…
Default palette βœ… βœ… βœ…
Default font βœ… βœ… βœ…
Image load max file size βœ… βœ… βœ…
Image first tab βœ… βœ… βœ…
Embed codes (content) βœ… βœ… βœ…
Custom JS & CSS βœ… βœ… βœ…
Universal CDN support βœ… βœ… βœ…
Default language βœ… βœ… βœ…
Homepage style – βœ… βœ…
Homepage cover images – βœ… βœ…
Homepage title & paragraph – βœ… βœ…
Homepage call to action – βœ… βœ…
Pages – βœ… βœ…
Lock NSFW editing – βœ… βœ…
User min age required – βœ… βœ…
User avatar max file size – βœ… βœ…
User background max file size – βœ… βœ…
Guest API key – βœ… βœ…
Available languages (configurable) – – βœ…
Hide "Powered by Chevereto" – – βœ…
Logo & branding – – βœ…
Logo type (vector, image, text) – – βœ…
Logo height – – βœ…
Logo favicon image – – βœ…
Routing (user, image, album) – – βœ…
Routing root – – βœ…
External services – – βœ…
Comments API (Disqus, JS) – – βœ…
Analytics code – – βœ…
Akismet spam protection – – βœ…
StopForumSpam spam protection – – βœ…
CAPTCHA (reCAPTCHA, hCaptcha) – – βœ…
CAPTCHA threshold – – βœ…
Project Arachnid – – βœ…
ModerateContent (auto approve, block, flag) – – βœ…
OAuth2 login providers (Amazon, Google, Discord, etc) – – βœ…
Banners – – βœ…
Watermark uploads (guest, user, admin) – – βœ…
Watermark file toggles – – βœ…
Watermark size requirement – – βœ…
Watermark custom image – – βœ…
Watermark position – – βœ…
Watermark percentage – – βœ…
Watermark margin – – βœ…
Watermark opacity – – βœ…

Admin toggles

Feature Free Lite Pro
Search (users and guest) βœ… βœ… βœ…
Explore (users and guest) βœ… βœ… βœ…
Random (users and guest) βœ… βœ… βœ…
NSFW listings βœ… βœ… βœ…
Blur NSFW content βœ… βœ… βœ…
NSFW on random mode βœ… βœ… βœ…
Banners on NSFW βœ… βœ… βœ…
Uploads (users and guest) βœ… βœ… βœ…
Uploads (URL) βœ… βœ… βœ…
Upload moderation βœ… βœ… βœ…
Upload embed codes βœ… βœ… βœ…
Upload redirection βœ… βœ… βœ…
Upload duplication βœ… βœ… βœ…
Upload expiration βœ… βœ… βœ…
Upload NSFW checkbox βœ… βœ… βœ…
Download button βœ… βœ… βœ…
Right click βœ… βœ… βœ…
Show Exif data βœ… βœ… βœ…
Social share buttons βœ… βœ… βœ…
Automatic updates check βœ… βœ… βœ…
Dump update query βœ… βœ… βœ…
Debug errors βœ… βœ… βœ…
Consent screen (age gate) – βœ… βœ…
User sign up – βœ… βœ…
User content delete – βœ… βœ…
User notify sign up – βœ… βœ…
User email confirmation – βœ… βœ…
User email for social login – βœ… βœ…
Auto language – – βœ…
Language chooser – – βœ…
SEO URLs (media and album) – – βœ…
Cookie law compliance – – βœ…
Flood protection – – βœ…
Flood protection notify – – βœ…
Watermarks – – βœ…

System features

Feature Free Lite Pro
Roles available admin admin, manager & user admin, manager & user
Image handling GD & ImageMagick βœ… βœ… βœ…
Theme palettes (10) βœ… βœ… βœ…
One-click upgrade (web & CLI) βœ… βœ… βœ…
Maintenance mode βœ… βœ… βœ…
Email SMTP + phpmail() βœ… βœ… βœ…
Decode ID βœ… βœ… βœ…
Encode ID βœ… βœ… βœ…
Test-email βœ… βœ… βœ…
Export user βœ… βœ… βœ…
Regenerate external storage stats βœ… βœ… βœ…
Migrate external storage records βœ… βœ… βœ…
Docker support βœ… βœ… βœ…
CLI console βœ… βœ… βœ…
Built-in debugger (xrDebug) βœ… βœ… βœ…
Built-in REPL (PsySH) βœ… βœ… βœ…
Supports Tinkerwel REPL βœ… βœ… βœ…
Queue handling – – βœ…

Supported servers

Chevereto runs anywhere, system requirements are minimal and it can run on any server.

License

Open Source license

Copyright Rodolfo BerrΓ­os Arce - AGPLv3.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see GNU Licenses.

Commercial license

The commercial license is designed to for you to use Chevereto in commercial products and applications, without the provisions of the AGPLv3. With the commercial license, your code is kept proprietary, to yourself. See the Chevereto Commercial License at Chevereto License

Compare licenses

Chevereto free edition is licensed under AGPLv3, which means that you can use it for free as long as you comply with the AGPLv3 terms. If you modify the code and distribute it, you must provide the source code to the users.

Chevereto Lite and Chevereto Pro editions are released under the Chevereto License, which is proprietary and it can be used for commercial purposes.

chevereto's People

Contributors

rodber avatar tmyngu11 avatar xjzh123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chevereto's Issues

Add mp4 support

These days image hosting sites allow you to upload short MP4 files instead of inefficient GIFs (and many in fact automatically convert big GIFs into MP4 clips behind the curtain for space reasons, i know Imgur does but pretty sure many others do it too), would be good if this software also added support for these

Unable to install 4.0.5 version

Hello,
I am trying to install chevereto 4.0.5 version using PHP 8.0 and PHP 8.1 version. But during 1st step of the installation, I got the Something went wrong error. I am not getting the exact error to debug it.
I have created env.php inside ...//app folder and added the following:

'chevereto', 'CHEVERETO_DB_PASS' => 'user_database_password', 'CHEVERETO_DB_PORT' => '3306', 'CHEVERETO_DB_TABLE_PREFIX' => 'chv_', 'CHEVERETO_DB_USER' => 'user_database', ]; (replaced my database values with it). Please help how to resolve my issue. Thanks.

Enable custom logo?

This edition doesn't include custom logo. To change the logo you have to replace the file on disk.

Add your +1 reaction if you need this feature to be included (edit logo from dashboard)

The image is not accessible

When I use picgo+chevereto, I can upload the image using ip+ port normally, but when I use the domain name plus port, I can't, and when I use the domain name plus port to access my image is displayed as the visitor upload
PR7DVWWNQN%XH%P`VNP45PX

SV(GW)2`K_2$84TL}SXG3Z5
Above is the form I use domain name plus port
Below I will use the ip+ port form
image
Can view normally

Chevereto Configuring a domain name

I gave Chevereto a domain name that I could use to access, but when I visited another page, the request address changed to https+ port number. Later, I set the domain name in Settings->Profile->Website, but it still didn't work

docker run error

error message:
something went wrong.code
647582de1c31a

how to resolve

Why ids are used with implodes in queries?

image

Hey... I'm wondering why you're using sprintf, implodes and concatting strings here to build sql queries?
if any of the ids that are being used in these queries were user supplied, can't they be a sql injection?

I see at times you're using parameters and I get that the table names are under your control, but the ids I find surprising?

Thanks for your time :D !

Add comparison table on readme

Need to indicate all the features so users can understand what this edition does and how it compares to other editions.

Unable to Upload images

Error report

preg_replace(): Compilation failed: unrecognized character follows \ at offset 16 (0)

Upgrade from v3 to v4 - Database Update fail

Hello,

I follwed this guide: https://v4-docs.chevereto.com/application/installing/upgrading.html Everything was fine, until I tried to update my database with "sudo -u www-data app/bin/legacy -C update". I already checked the installper.php, but I am not able to understand everything, so I kindly ask here for help.

System: LXC with Ubuntu 22.04, PHP 8.1, MySQL

I get the following error:

https://pastebin.com/FHrx11n1

Maybe I failed with the config update? This was my old config:

https://pastebin.com/DB2BL58y

And this is my new config:

https://pastebin.com/vVmAG8SY

I removed "db_pdo_attrs", Because version 4 could not handle it and gave me errors.

Installed from free v3 to AGPL v4 - now it acts like a single user website?

I'm not sure if this is right, but upgrading from free to the AGPL v4 code from github and it only shows my profile, not any of the other users on the instance?

It doesn't match the screenshots that appear in the repo and trying to even view other users registered on the system is "locked" behind a pro license?

Is all accessible functionality now locked behind the 67$ license or have I just encountered a bug?

Kind regards,

Docker Chevereto behind Reverse Proxy logs wrong IPs

Hey,

I am using the Chevereto Docker image and run it behind a Traefik reverse proxy. Traefik is properly sending the user's real IP address along to the Chevereto container. However, in the mariadb table chv_requests, only internal Docker subnet IP addresses are logged.

This leads to problems regarding flood protection and IP bans. If such things occur, the IP address of the reverse proxy is banned and the whole Chevereto site is down.

image

I assume that the internal web server of the Chevereto container (Apache?) is missing the relevant mod_remoteip settings. Therefore, it does not trust the reverse proxy and will not take the defined real IP address of a website user in X-Forwarded-For.

Any help on how to fix this?

Here my docker-compose.yml:

version: "3.7"

services:
  chevereto:
    image: ghcr.io/chevereto/chevereto:latest
    container_name: chevereto
    init: true
    restart: unless-stopped
    volumes:
      - chevereto:/var/www/html/images
    expose:
      - 80
    environment:
      CHEVERETO_DB_HOST: mariadb
      CHEVERETO_DB_USER: chevereto
      CHEVERETO_DB_PASS: chevereto
      CHEVERETO_DB_PORT: 3306
      CHEVERETO_DB_NAME: chevereto
      CHEVERETO_ASSET_STORAGE_TYPE: local
      CHEVERETO_ASSET_STORAGE_URL: /images/_assets
      CHEVERETO_ASSET_STORAGE_BUCKET: /var/www/html/images/_assets
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.chevereto.rule=Host(`chevereto.example.com`)
      - traefik.http.services.chevereto.loadbalancer.server.port=80
      - traefik.docker.network=proxy

  mariadb:
    image: mariadb
    container_name: chevereto_mariadb
    restart: always
    init: true
    environment:
      MYSQL_DATABASE: chevereto
      MYSQL_USER: chevereto
      MYSQL_PASSWORD: chevereto
      MARIADB_ROOT_PASSWORD: chevereto
    volumes:
      - chevereto_mariadb:/var/lib/mysql
    networks:
      - proxy

volumes:
  chevereto: {}
  chevereto_mariadb: {}

networks:
  proxy:
    external: true

Version number not updated in 4.0.9 zip

Hello @rodber ,

I was in the process of manual installation of Chevereto 4.0.9 on Centos 7 with PHP 8.0, MYSQL 5.7, Apache 2.4 downloaded from

https://github.com/chevereto/chevereto/releases/download/4.0.9/4.0.9.zip

However ,t seems that version number is not updated in file app/legacy/load/app.php, under line 12 i.e :
const APP_VERSION = '4.0.8';

it is still 4.0.8.

Due to this under dashboard it shows 4.0.8 :

Screenshot 2023-08-29 at 13-52-08 Chevereto image hosting

Also under database it is not updated under settings table i.e :
(3, 'chevereto_version_installed', '4.0.8', '4.0.8', 'string'),

Could you please check fix this?.

Issue while installing Chevereto 4.0.5

Hello,

I was in the process of installing Chevereto on Centos 7 with Apache 2.2, MYSQL 5.7 , PHP 8.0.22 using the release package via method mentioned here :

https://v4-docs.chevereto.com/application/installing/installation.html#using-release-package

However this doesn't seem to work. On hitting the installation URL http://{{DOMAIN.COM/chevereto/install as mentioned in the docs .

However the following is thrown :

Something went wrong as shown in the screenshot.

image

How do I debug the same ?.

Is there any way to print the debug information on screen or under apache logs .

Under apache logs nothing is thrown .

Delete image

1
ζˆͺ屏2023-02-14 12 54 30
ζˆͺ屏2023-02-14 13 24 48
The latest version will report an error when I delete the uploaded image. After deletion, it will be blank placeholder

Missing Notification Class when Deleting a Picture or Album

Hi! First off, thanks for creating Chevereto. It is an awesome piece of software =)

I am creating a new issue in reference to an old one, because it unfortunately still hasn't been resolved in the new update.

Basically, I encounter this error whenever I try to delete a picture or album:

image

Continuing to click "Confirm" just makes the Notification error pop up (shake):

Class "Chevereto\Legacy\Classes\Notification" not found (0)

After refreshing the page, I would see that the image still exists in the gallery, but it already has an "empty inbox" icon:

image

And when I click on the image to expand it, I get this:

image

That means that while the image has already (probably) been deleted, it still appears in the list. Couuld the error message regarding Notification be a clue?

Keep up the good work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.