A little PHP script created for uploading custom sharex files to your own webserver

Overview

ShareX-Custom-Upload

A little PHP script created for uploading text, files, and images to your own webserver. It supports uploading via ShareX, but also on the web interface, and with command line scripts.

Installation

Download the latest release as a ZIP from the Releases page.

Extract the ZIP and follow the setup instructions below.

If you'd like to run on the bleeding-edge of updates, clone this repo, and replace all references to release in the documentation with src. Point your web server's document root to this src folder, and disable the auto-updater. To update, run git pull.

Migrating from Version 1

Version 2 introduced major breaking changes that make it incompatible with Version 1 installations. See the migration guide for instructions on how to upgrade your uploader.

NGINX Configuration

By default, this server relies on Apache's .htaccess configuration files to function. However, it is possible to configure NGINX to work with the uploader. Please read the NGINX configuration guide for more information.

Setup

Note: this script requires the openssl and fileinfo extensions to be enabled in your php.ini.

Note: If using Apache, you must also make sure that mod_rewrite and mod_authz_core are enabled in your httpd.conf.

  1. Enter the release folder
  2. Make a copy of the config.default.php file and save it as config.php
  3. Edit the config.php file as you see fit

For your site to start working, the only setting you need to change is base_url. This will be the URL where your gallery page is accessible.

Then, upload the contents of the release folder to your website.

See the full configuration documentation for more information about how to configure your installation.

Important: If you choose to not place your uploader in the root of your website, the base_url setting needs to include the path to where the uploader code will be accessible. If you do this and you use Apache, you will also need to to change the RewriteBase in the .htaccess file to incude the path to your uploader.

For example, if you want your uploader to be located at https://mydomain.com/myfileuploads, you will need to upload the contents of the release directory to /website/root/directory/myfileuploads, set base_url to https://mydomain.com/myfileuploads and update the RewriteBase line to say RewriteBase /myfileuploads

Updating

Updating to a new version is fully automated, except pressing a button. When a new update is available, a large banner will appear that prompts you to update. Confirm the update, and it'll do the rest for you.

Important: The automatic updater does not modify any of your configuration files, so if the configuration format is modified in the future, you will need to manually edit your configuration file to match the new format. Please read the release notes for any new versions and check for any breaking configuration changes. You can always check the latest configuration file for an example of what your configuration should look like.

If the update banner does not show up, please make sure that the VERSION file exists in both your uploader install directory and the release directory. The version number in the release directory must also be higher than the version number in your current installation.

If you get an error after pressing the update button, make sure that the folder where your uploader is installed is writable. If that is the case and you still get an error, please open an issue.

Note: The uploader only supports automatic updating starting with version 2.1.0. If you are currently using a version older than 2.1.0 and want to update, you will need to complete the update manually by copying the new files into your website. However, after you manually update, you will be able to use the automatic updater for future versions.

Login Configuration

This application supports login using a username and password. If you would like to enable this, set the enable_password_login option in your config.php to true. Now, the next time you open your gallery page, you will be prompted to register an account. Only one account is allowed per installation. It is recommended that you set up your account soon after enabling this setting, since anyone who attempts to view the gallery before an account is set up will be prompted to register.

By default, the website will prompt you for a username and password to log in, but if you would like to only use a password, set the enable_username config option to false.

If you have forgotten your password or would like to change it, just delete the login.json file in your website's root directory. Do not edit this file directly, since your passwords and authentication tokens are hashed and changing them will corrupt the file.

ShareX Configuration

To start using your uploader with ShareX, go to your gallery page (which will be at the base_url you set in your configuration file) and click on the Share icon at the bottom of the page. This should automatically generate and download a ShareX configuration file. You can now open the file and ShareX should prompt to add your uploader.

ShareX File Name Templates

The uploader supports using names generated by ShareX's templating system, which allows you to use information about this image to generate your file name. To enable this, you will need to set the sharex_upload_naming_scheme to provided in your config.php.

To customize the format of this name after adding your uploader to ShareX, you will need to open the Custom uploader settings from the Destinations menu in the ShareX application. Select the name of your uploader in the Uploaders menu. Now, you can edit the value of the name field Body table on the right.

This name field accepts any valid ShareX name template as a value. You can create a ShareX template string by opening the Task Settings menu from the ShareX application, opening the File naming tab, and selecting the Name pattern for capture or clipboard upload field. A dropdown will open on the right, which you can use to create the template string you want to use. You can then copy the string from this field back into the name field from the Custom uploader settings.

Manual Setup

Alternatively, if you have trouble with the above, you can manually add your uploader to ShareX.

  1. From the ShareX main application, go to Destinations and click on Custom uploader settings
  2. In the top left corner, press New to add a new uploader profile
  3. Now, set the Request Method to POST
  4. Set the URL to your base_url/upload.php. For example, if your gallery is at https://example.com, set URL to https://example.com/upload.php
  5. Set File form name to fileupload
  6. Set Body to Form data (multipart/form-data) and in the table underneath, type in key for the name and set the value to the secure_key set from your config.php file.
  7. Set the Name field at the top to something you can use to identify your uploader and in the bottom left, choose the profile you created for the Image, File, and Text uploaders.
  8. Close the window and in the destinations tab of the main ShareX window, choose the Custom uploader option for the file types you would like to upload. (This application supports Image, File, and Text uploading)

The setup is now complete, test your uploader and it should work!

Shell Configuration

This uploader also supports text uploading via shell script. To use this feature, click on the Terminal icon on the bottom of your gallery page and select your shell environment. This will download a shell script which will be able to upload piped inputs to your site. Next, follow the steps for your shell environment.

Bash

Move the downloaded script to /usr/bin/local.

Windows Command Prompt

Move the downloaded script to C:\Users\yourusername\scripts (replacing yourusername with your Windows user folder). Then, add that folder to your PATH.

To do this, type Environment Variables into Windows Search. Then, in the window that opens, click on the Environment Variables... button. Find the Path variable in the User variables section, select it, and press Edit. Then press the New button and type the path to the folder where your script is located (C:\Users\yourusername\scripts). Press Ok to save all your changes and restart the command prompt.

Powershell

Open your Powershell profile file (the path is stored in the $PROFILE variable) and copy the contents of the downloaded script to the end of your profile file. Save the profile and restart Powershell.

Usage

Now, you can pipe text to the upload command and it will return the URL of the uploaded file. You can optionally provide a filename to be used for the upload.

Examples:

somecommand | upload
somecommand | upload myfile.txt

Direct Uploading

Want to upload directly using POST requests? You're in luck! We've got some documentation.

Screenshots

Screenshot of gallery page

Screenshot of text viewer

Planned Features

View the tasks board here.

Full Configuration

Below is an explanation of all available configuration options.

base_url

You must change this.

This is the most important configuration option. You must set this in order for your site to work. This needs to be set to the location where your uploader site's files can be accessed.

Important: If you choose to not place your uploader in the root of your website, the base_url setting needs to include the path to where the uploader code will be accessible. If you do this, you will also need to to change the RewriteBase in the .htaccess file to incude the path to your uploader.

For example, if your uploader site's files are located at /website/root/directory/myfileuploads, set base_url to https://mydomain.com/myfileuploads and update the RewriteBase line to say RewriteBase /myfileuploads

secure_key

You must change this.

This sets the token used by ShareX to upload images and files. Since you don't need to memorize this, you should probably set it to something really long and random.

Important: The secure_key cannot contain the $ character due to limitations of PHP.

Note: This is not the password you use to log in to the gallery.

Here's a random string generator you can use.

file_storage_folder

Default Value: 'u/'

This sets the directory where your uploads are stored. You really shouldn't have to change this. If you want to change the path where your files are accessible on the site, use the upload_access_path config option instead.

However, if you change this and you use Apache, you must copy the .htaccess file from the u/ directory to your new folder. If you do not do this, people will be able to run arbitrary code on your computer. (This is very bad.)

upload_access_path

Default Value: '/'

The sets the path where you will be able to access your uploads from your browser.

Examples:

If you set this to / and your base_url is https://www.example.com, a file called filename.ext would be accessible at https://www.example.com/filename.ext

If you set this to myfiles/, a file called filename.ext would be accessible at https://www.example.com/myfiles/filename.ext

Note: For security reasons, this cannot be the same as your file_storage_folder.

zip_storage_folder

Default Value: 'backups/'

This sets the folder where ZIP backups will be stored.

allowed_ips

Default Value: ['127.0.0.1', '::1']

This sets the IP addresses that are allowed to access the gallery page. However, this does not control who can access your uploads—anyone with a direct link to an file can see it. By default, only clients on the same computer as the host can access the page.

Leave this blank to disable IP blocking.

enable_password_login

Default Value: false

This sets whether to use the password system to login to the gallery page. Using this setting will not disable the allowed_ips setting and IP blocking—the two will be used in conjunction.

After the first time you enable this, attempting to view the gallery page will prompt you to create an account.

See the password login section above for more details.

enable_username

Default Value: true

This sets whether or not you will be prompted to provide a username when you log in. This setting has no effect if enable_password_login is false. If this setting is disabled, you will only be prompted for your password.

remember_me_expiration_days

Default Value: 30

This controls how long Remember Me tokens are valid for.

When you log in and check the "Remember Me" box, your browser will save a unique identifier and you will not be prompted to log in the next time you visit the uploader. After the number of days specified in this configuration option, this identifier will invalidated and you will need to log in again.

Remember Me tokens will automatically deleted from your browser if you press the Log Out button. This setting only controls how long you will stay signed in for.

page_title

Default Value: 'My File Uploader'

This sets the title shown for the gallery page tab in your browser.

heading_text

Default Value: 'My File Uploader'

This sets the text shown in the header on the gallery page.

gallery_date_format

Default Value: 'MMMM Do YYYY, HH:mm:ss'

This controls the date format used to display file upload dates in the table on the gallery page.

See the Moment.js format options for information about how to configure this option.

enable_gallery_page_uploads

Default Value: true

This controls whether to enable the upload forms on the gallery page.

enable_delete_all

Default Value: false

This controls whether to enable the option to delete all uploads from the gallery page.

enable_delete

Default Value: true

This controls whether to show the option to delete individual uploaded files on the gallery page.

enable_rename

Default Value: true

This controls whether to show the option to rename files from the gallery page.

enable_tooltip

Default Value: true

This controls whether to show image previews in a tooltip when image links are hovered over on the gallery page.

enable_zip_dump

Default Value: false

This controls whether to show the option to download all uploads as a ZIP archive. This is untested with large amounts of uploads.

Note: This option does not control whether you will be able to download uploads as a ZIP using the bulk selector.

enable_rich_text_viewer

Default Value: true

This sets whether to show text files in the rich text viewer or send all files raw.

The rich text viewer has theme support, line numbers, and syntax highlighting.

sharex_upload_naming_scheme

Default Value: 'random'

This sets the file naming format to use for ShareX uploads.

Possible values are keep, provided, date and random.

Keep mode will keep the file name sent by ShareX.

Provided mode will use the file name sent in the name field by ShareX. See the ShareX Configuration section for more information about how to set this up.

Date mode will generate a file name based on the date and time of the upload using the format specified in upload_date_format.

Random mode will generate a random file name with the length specified in random_name_length.

gallery_upload_naming_scheme

Default Value: 'random'

This sets the file naming format to use for gallery uploads.

Possible values are keep, date and random.

Keep mode will keep the name of the uploaded file.

Date mode will generate a file name based on the date and time of the upload using the format specified in upload_date_format.

Random mode will generate a random file name with the length specified in random_name_length.

text_upload_default_naming_scheme

Default Value: 'random'

This sets the file naming format to use if no file name is provided for a text upload.

Possible values are date and random.

Date mode will generate a file name based on the date and time of the upload using the format specified in upload_date_format.

Random mode will generate a random file name with the length specified in random_name_length.

random_name_length

Default Value: 6

This setting sets the length of the random names generated if random is chosen as the default_naming_scheme.

upload_date_format

Default Value: 'Y-m-d_H.i.s'

This setting sets the format used to generate file names if date is set as the default_naming_scheme.

See the PHP date function options for information about how to configure this option.

Since this option is used for file names, there is a limited selection of characters which can be used. See the Wikipedia Filename article for information about what characters can be used in this setting.

enable_updater

Default Value: true

This controls whether to enable uploader's built in updater.

If enabled, the uploader will prompt you to update when a new version is released and will automatically download and install the update if you agree.

If you disable this, you will need to manually copy the code from the new release to update.

enable_update_rollback

Default Value: true

This controls whether the uploader should make backups of the old version of the code when performing an update.

If this is enabled, the update will copy the old versions of all modified files to the rollback folder. If you an update ever breaks your uploader, you can just go to <base_url>/rollback/update.php to roll back the update.

enable_image_cache

Default Value: true

This controls whether the uploader should instruct the browser to cache the uploaded images.

This is enabled by default, but can slightly hurt performance on low power systems.

debug_mode

Default Value: false

This enables Debug Mode, which will instruct the uploader to log and send additional debug information.

At the moment, this will only enable sending the time it took to generate image hashes for caching.

Comments
  • URL is empty

    URL is empty

    Im having issues making this work, i had a working one of these before... but now i have reset my computer.. and now i can't seem to get it to work... i've done the exact same thing 1:1 i did before..

    But now it just throws me the error URL is empty...? did sharex add something new you gotta add?

    IMG: 111

    Also, i wanna add i cannot get gallery to work... i've allowed all ips (no luck) and i've allowed my ip (no luck) anyway.

    opened by g0dzcsgo 30
  • Added custom Directory Uploads

    Added custom Directory Uploads

    In this Change the file loads the directory value from the config file and generates an string ($target_dir) out of that. This String is now the replacement for the hard coded value '/u/'.

    opened by jnthn-b 15
  • File upload failed, ensure permissions are writeable (777) on the upload directory

    File upload failed, ensure permissions are writeable (777) on the upload directory

    I get this error every time I try to upload a file from ShareX, and even after redefining the permissions, the error still appears. Here are the two commands I ran: sudo chown -R www-data:www-data release/ sudo chmod -R 755 release/

    opened by MAXOUXAX 14
  • You may not upload without the key parameter, see full config

    You may not upload without the key parameter, see full config

    Hi,I have a little problem with this shareX script. Every Time I want to upload screenshot I got this communicate.

    "You may not upload without the key parameter, see full config: https://github.com/JoeGandy/ShareX-Custom-Upload/blob/master/README.md#automatic-setup"

    ss1

    bug 
    opened by DestruktorGitHub 13
  • Error:

    Error: "You may not upload with the key parameter"

    I just set everything up but somehow my secret key won't get accepted. I tried test as secure_key but when I test the shareX config, I get the You may not upload with the key parameter error.

    My config file:

    
    return [
        /* This is a secure key that only you should know, an added layer of security for the image upload */
        'secure_key' => 'test',
    
        /* This is the url your output will be, usually http://www.domain.com/u/, also going to this url will be the gallery page */
        'output_url' => 'https://sharex.domain.me/u/',
    
        /* This request url, so the path pointing to the uplaod.php file */
        'request_url' => 'https://sharex.domain.me/upload.php',
    
        /* This is a redirect url if the script is accessed directly */
        'redirect_url' => 'https://domain.me/',
    
        /* This is a list of IPs that can access the gallery page (Leave empty for universal access) */
        'allowed_ips' => [],
    
        /* Page title of the gallery page */
        'page_title' => 'ShareX Gallery',
    
        /* Heading text at the top of the gallery page */
        'heading_text' => 'Uploading Site',
    
        /* Delete file option (true to enable, disabled by default) */
        'enable_delete' => false,
    
        /* Show image in tooltip  (true to enable, disabled by default) */
        'enable_tooltip' => false,
    
        /* Show link to download all files as .zip (Untested with large archives of files) */
        'enable_zip_dump' => false,
    
        /* Generate random name (true to enable, disabled by default) */
        'enable_random_name' => true,
    
        /* Select lenght of random name (10 symbols by default) */
        'random_name_length' => 10,
    ];
    opened by k4lim 10
  • Getting Error 500 on Version 2

    Getting Error 500 on Version 2

    Hey all,

    I'm getting error 500 on the new version. The old one works perfectly but anytime I try to upload via ShareX and/or access the gallery page, it does not work at all.

    I feel like I am setting something up incorrectly but after restarting multiple times I cannot figure it out. I'm more concerned about getting the gallery page to work correctly.

    Here are some screenshots: https://i.imgur.com/VRTw648.png https://i.imgur.com/HliuKG3.png

    I have everything from the release folder inside of /u/ so if I'm reading everything correctly it SHOULD be working fine. But it isn't. Any help would be much appreciated.

    opened by bokerlol 9
  • Random file name

    Random file name

    It would be cool if there was a config option to generate a random name on the php end instead of providing the name from your sharex client. It looks like there's no checking if the file already exists on the server so you can't use sharex to randomize characters because you'll eventually have conflicts. A lot of other uploaders already have this, but this one seems to be the best besides that issue.

    opened by nnever 8
  • ShareX won't upload files

    ShareX won't upload files

    Error: Message: Too many automatic redirections were attempted.

    Request URL: https://redacted/upload.php

    Stack trace: at System.Net.HttpWebRequest.GetResponse() at ShareX.UploadersLib.Uploader.SendRequestFile(String url, Stream data, String fileName, String fileFormName, Dictionary2 args, NameValueCollection headers, CookieCollection cookies, ResponseType responseType, HttpMethod method, String contentType, String metadata)

    question 
    opened by TurboCheetah 8
  • Add automatic updater

    Add automatic updater

    Resolves #95

    This adds automatic updating functionality exactly as described in the linked issue. All a user has to do to update is copy the release folder to their site, click a button, and voila! However, this script doesn't modify user configuration, so it shouldn't break any installs. That also means that users will need to manually edit the configuration if the config schema changes in the future.

    opened by theaquarium 7
  • Set it up perfectly, but the picture doesn't actually get uploaded and I don't get the right link

    Set it up perfectly, but the picture doesn't actually get uploaded and I don't get the right link

    Hi! Let me just start by saying I love this stuff, and I find it really useful since I'm trying to get my own image uploader without Imgur taking ages to upload and then compressing stuff. So... Thank you so much!

    There's only two issues, though; I set everything perfectly, and when I capture a region and send it through the custom destination thingy, I get the HTML code of my index page as the URL!

    Sounds weird, isn't it? But the weird part is, it tells me the file was uploaded but I can't see it on my server.

    What did I do wrong? Is there something I need to set in the PHP settings themselves?

    question 
    opened by davidepaci 7
  • Generated ShareX config file doesn't have correct extension (.sxcu)

    Generated ShareX config file doesn't have correct extension (.sxcu)

    Hey all,

    When on the gallery page and I choose 'Generate ShareX Custom Uploader File' it does generate a file that works but it does not have the correct extension at the end of it. If I manually add the .sxcu at the end, it works flawlessly. I've tried a few times and the result was the same every time.

    I don't believe I made any changes that would affect this but if you need any information let me know. Just wanted to report this as an issue.

    Thanks!

    opened by bokerlol 6
  • Link Shortening

    Link Shortening

    Found this other Project that seems to work really nicely and I feel without much work could be part of this.

    https://github.com/xaizone/sharex-custom-url-shortener

    opened by dotziph 0
  • Cannot upload anything through the web interface, but uploading through ShareX works.

    Cannot upload anything through the web interface, but uploading through ShareX works.

    Hello!

    I have the issue that I am unable to upload images through the web interface. When I drag&drop (or select a file) a picture, it uploads it, but when it's finished it just refreshes the page and neither the image shows up as an entry in the web interface nor is a picture added to the picture directory.

    I'm able to rename and delete files through the web, and I'm also able to upload files through ShareX. It seems permission shouldn't be an issue.

    In the browser console I get a POST 500 Error. image

    fileinfo and openssl module are loaded. I enabled PHP error logging, but no errors are logged.

    max_input_time = 300
    max_execution_time = 300
    upload_max_filesize = 2G
    post_max_size = 2050M
    
    opened by dom6770 0
  • for some reason, the rewrite.php with the .htaccess file does not work

    for some reason, the rewrite.php with the .htaccess file does not work

    so what ive seen a bit of rewrite.php do is remove the php file stamp from all the shit in the urls which is why it's use for that in .htaccess

    but it does not remove the .php extensions and when using login, register, etc, it goes to say "login" not "login.php"

    any fix?

    opened by SawshaDev 0
  • Suggestion: Specify the delete URL of a file to ShareX in the SXCU

    Suggestion: Specify the delete URL of a file to ShareX in the SXCU

    As stated here: https://getsharex.com/docs/custom-uploader ShareX supports returning a Deletion URL which the user can use to delete files directly from ShareX, would this possible to implement?

    opened by FolfyBlue 0
  • Not Found

    Not Found

    Heya, I have been trying to get this Uploader working but I keep facing an issue:

    When I take a screenshot, it uploads it perfectly fine at the set location on my domain. However, the URL it returns throws a 404. "Not Found - The requested URL was not found on this server.", although the file is on the server.

    I have done my best for my php.ini and apache2.conf files to follow the setup instructions, however, nothing seems to work. Help would be appreciated, as I am not really in my element.

    1 Upon clicking the file name... 2

    opened by FolfyBlue 2
Releases(2.1.1)
  • 2.1.1(Nov 11, 2020)

  • 2.1.0(Oct 21, 2020)

    We're super excited to bring you this huge release! We've got a bunch of new features and some pretty big breaking changes.

    If you are upgrading your uploader, please read them before updating. We would recommend completely reinstalling your uploader for this version due to the significant changes, but hopefully you won't have to do this anymore in the future (thanks to the new automatic updater).

    Breaking Changes

    • The way file naming is done has been reworked. Instead of default_naming_scheme, use_default_naming_scheme_for_sharex, and use_default_naming_scheme_for_gallery in your config, we now have sharex_upload_naming_scheme, gallery_upload_naming_scheme, and text_upload_naming_scheme which allows for some additional customization. Please read the configuration documentation for more information.
      • Using this has also allowed us to add back the name parameter in ShareX, so you'll need to download a new ShareX uploader config file to take advantage of this.
    • This releases introducing client-side caching support and two new configuration options have been added to deal with this. These are enable_image_cache and debug_mode. Please read the configuration documentation for more information and check the new config.php for an example of how to add these options to your config.
    • Last but certainly not least, this update's flagship feature! This release adds an automatic updater so you don't have to deal with manually updating your uploader whenever there's a new release. The updater will be available as soon as you update to this release. Two new configuration options have been added to configure the updater: enable_updater and enable_update_rollback. Please read the configuration documentation for more information and check the new config.php for an example of how to add these options to your config.

    Changelog

    • Fix gallery page uploads with no password (@theaquarium - #94)
    • Fix flash of wrong theme on page load (@davwheat - #103)
    • Optimise image assets (@davwheat - #104)
    • Add NGINX support (@theaquarium - #101)
    • Fix text viewer styles (@theaquarium - #105)
    • Add upload caching with ETag validation (@theaquarium and @davwheat - #102)
    • Add automatic updater (@theaquarium - #99)
    • Change back to use relative URLs on error page (@theaquarium - #106)
    • Add back ShareX name parameter (@theaquarium - #97)
    • Add favicons to text viewer page (@theaquarium - #107)
    • Fix ShareX config file name (@theaquarium - #98)
    Source code(tar.gz)
    Source code(zip)
    ShareX-Custom-Upload-2.1.0.zip(251.51 KB)
  • 2.0.1(Jul 23, 2020)

  • 2.0.0(Jul 21, 2020)

    Changelog

    • Added dark theme (@theaquarium - #82)
    • Added login with username and password (which are stored hashed and salted) (@theaquarium - #82)
      • Login has remember me functionality with hashed tokens (@theaquarium - #82)
    • Added rich text viewer for text files with theme support and syntax highlighting (@theaquarium - #82)
    • Added upload forms for text and files on the gallery page (@theaquarium - #82)
    • Added text uploads through a shell script (like a pastebin) (@theaquarium - #82)
    • Added a rename button on the gallery page (@theaquarium - #82)
    • Added bulk download and delete operations (@theaquarium - #82)
    • Added custom date formats for upload names (you can choose whether you want files to have random names, date-based names, or keep original name) (@theaquarium - #82)
    • Added custom date formats on the gallery page with fixed sorting (@theaquarium - #82)
    • Uploader can now be added as a PWA (@theaquarium - #82)
    • Updated to new versions of css/js assets (@theaquarium - #82)
    • ShareX config files now automatically set this uploader as default (@theaquarium - #82)
    Source code(tar.gz)
    Source code(zip)
    ShareX-Custom-Upload-2.0.0.zip(303.11 KB)
Owner
Joe Gandy
A web developer initially from Derby
Joe Gandy
This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology.

This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology. This is a restaurant website which is to offer services such as ordering goods through sending of emails, viewing of any order, signing-in/up for customer's who want to order food, and much more, with also some live features like dates of the day alongside opening and closing working ours. So let's jump right into it.

null 1 Nov 26, 2021
A simple blog project based on a custom-created MVC framework using PHP & MySQL

A simple blog project based on a custom-created MVC framework using PHP & MySQL. That follows the Facade design pattern.

Samiul Arafah Dhrubo 2 May 28, 2022
HiDomainer One-File Domain Portfolio Script, is a PHP script of only 8kb.

HiDomainer One-File Domain Portfolio Script, is a PHP script of only 8kb. Download Feature 1. PC and Mobile Friendly 2. Data management without page r

HiDomainer.com 1 Mar 2, 2022
Our team created for you one of the most innovative CRM systems that supports mainly business processes and allows for customization according to your needs. Be ahead of your competition and implement YetiForce!

We design an innovative CRM system that is dedicated for large and medium sized companies. We dedicate it to everyone who values open source software,

YetiForce Sp. z o.o. 1.3k Jan 8, 2023
This plugin was created to help you migrate your existing gallery from your old site.

WP Migrate Gallery 1. Steps to Import Gallery 1.1. Install ACF PRO 1.2. Create CPT Gallery 1.3. Create Gallery Taxomy 1.4. Copy Gallery media files to

null 3 Jun 23, 2022
Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP

Audio Video Platform AVideo is a term that means absolutely nothing, or anything video. Since it doesn't mean anything the brand simply is identifiabl

World Wide Broadcast Network 1.7k Jan 8, 2023
Scrumwala: Your very own Scrum, Agile project management web app - built with Laravel

Scrumwala Your very own Scrum/Agile web app built with Laravel Features Create and manage projects with plan and work views Group issues in a project

null 255 Nov 2, 2022
Bludit - a web application to build your own website or blog in seconds

Bludit is a web application to build your own website or blog in seconds, it's completely free and open source. Bludit uses files in JSON format to store the content, you don't need to install or configure a database. You only need a web server with PHP support.

BLUDIT 1.1k Jan 1, 2023
phpSysInfo: a customizable PHP script that displays information about your system nicely

phpSysInfo Copyright (c), 1999-2008, Uriah Welcome (sf.net/users/precision) Copyright (c), 1999-2009, Michael Cramer (sf.net/users/bigmichi1) Copyrigh

phpSysInfo 1.3k Jan 1, 2023
Created simple login system and chat type website using mysql database along with php and html , css and javascript.

Created simple login system and chat type website using mysql database along with php and html , css and javascript.

null 1 Jan 6, 2022
An awesome cryptic chat created in php

Cryptocat An awesome cryptic chat created in php ! Table of Contents About The Project Built With Getting Started Prerequisites Installation Screensho

Zijaham Galvan 0 Mar 24, 2022
Library JGU is a website created for a university library system information. Made with PHP & TailwindCSS.

Library JGU Library JGU is a website created for a university library system information. Made with PHP & TailwindCSS. Key Features • How To Use • Rel

Azkazikna Ageung Laksana 23 Oct 7, 2022
A forum created with Laravel, Socket.io, and Tailwind CSS.

A forum created with Laravel, Socket.io, and Tailwind CSS.

Steven Lei 164 Nov 21, 2022
📑 Invoice Generator - This is an invoicing system created with Laravel,

?? This is an invoicing system created with Laravel, which allows the user to generate invoices based on product and customer catalogs that are manageable.

Javier Amaya 6 Nov 30, 2022
Online personal and group chat application using HTML, CSS, JS, PHP,SQL and AJAX that allows users to create own groups, chat

Online personal and group chat application using HTML, CSS, JS, PHP,SQL and AJAX that allows users to create own groups, chat, make friends, check new notifications and edit functionality. Chat automatically updates using AJAX to allow for real-time chatting with other users collected from the database.

Dave Sharma 2 Aug 5, 2022
Quick and dirty PHP script to turn a Twitter feed into an RSS feed using Twitter's v2 API

Twitter to RSS Quick and dirty PHP script that turns a given Twitter feed into a RSS feed using Twitter's API v2 (the free version!) Does some basic l

Jon W 0 Aug 11, 2022
Stream Site with a auth script for OvenMediaEngine

OvenMediaEngine Stream Site Two PHP pages, one for authentication. The other is for displaying the streams. License AGPL Previews Installation Require

Katie 1 Oct 15, 2021
Quick-and-dirty script for calculating cryptocurrency capital gains for tax purposes.

Software for calculating cryptocurrency capital gains for tax purposes. Calculation with LIFO method, developed with Italy in mind.

Cristian Livella 10 Oct 6, 2022
ULEARN - Open Source(FREE) LMS script in Laravel 5.8 and ReactJS 16.9

About ULEARN Key Features Demo & Credentials Access ReactJS Page Installation Support License About ULEARN ULEARN is an impressive LMS script which co

null 535 Jan 2, 2023