Pomf is a simple lightweight file host with support for drop, paste, click and API uploading.

Overview

Pomf

Build Status Quality Gate Status MIT licensed Documentation Status

Pomf is a simple file uploading and sharing platform.

Features

  • One click uploading, no registration required
  • A minimal, modern web interface
  • Drag & Drop & Paste supported
  • Upload API with multiple response choices
    • JSON
    • HTML
    • Text
    • CSV
  • Supports ShareX and other screenshot tools

Demo

See the real world example at demo.pomf.se.

Requirements

Tested and working with Nginx + PHP-8.0/8.1 + SQLite/MySQL.

Node is used to compile Pomf, after that is runs on PHP.

Installation

Installation and configuration can be found at Pomf Documentation.

If you need a admin panel check out Moe Panel.

File expiration

If you want files to expire please have a look at Uguu instead which is based on Pomf.

Getting help

Hit me up at @nekunekus or email me at [email protected].

The Pomf community gathers on IRC.

  • IRC (users): #pomfret on Rizon (irc.rizon.net)

Contributing

We'd really like if you can take some time to make sure your coding style is consistent with the project. Pomf follows PHP PSR-12 and Airbnb JavaScript (ES5) (airbnb/legacy) coding style guides. We use ESLint and PHPCS tools to enforce these standards.

You can also help by sending us feature requests or writing documentation and tests.

Thanks!

Credits

Pomf was created by Eric Johansson (nekunekus) & Emma Lejeck for Pomf.se. The software is currently maintained by the community.

License

Pomf is free software, and is released under the terms of the Expat license. See LICENSE.

Comments
  • Consider defaulting to SQLite instead of MySQL

    Consider defaulting to SQLite instead of MySQL

    At the moment, readme instructs users to install MySQL to get pomf to function (though mentions other databases may work).

    MySQL, or any full SQL server, is completely unnecessary (though of course there's nothing wrong with using it) for something like pomf. It is an unnecessary dependency, and complicates installation. Many might lazily set it up, leaving it in a potentially insecure configuration.

    SQLite is completely self-contained, and requires no configuration. The only change necessary to the code, would be changing the placeholder references to a MySQL server/database in settings.inc.php, to a suitable URI pointing to a location for the SQLite database file.

    opened by liilac 14
  • Javascript 2nd copy button doesn't work

    Javascript 2nd copy button doesn't work

    All copy buttons except the first one don't work in chromium 51.0.2704.84 (Developer Build) (64-bit). When clicked they return the error 'Discontiguous selection is not supported.(anonymous function) @ pomf.min.js'

    bug 
    opened by ewhal 13
  • raw TCP upload interface

    raw TCP upload interface

    Supporting upload through netcat on a separate port, like http://termbin.com/ does would be great to allow uploads from unixy systems without additional dependencies.

    opened by the8472 8
  • Hash algorithm migration supposed to be completed

    Hash algorithm migration supposed to be completed

    https://github.com/pomf/pomf-php/blob/master/classes/UploadedFile.class.php

    This is not horribly difficult to do. There are two components

    • replace SHA-1 with SHA-2 in above
    • replace all existing hashes in DB with new one

    The latter would be CPU intensive, so running it may need to be planned (and ensuring it has low nice value, etc). It should not be very difficult to generate new hashes in the background, then when ready, use new code that checks SHA-2 hashes.

    opened by liilac 6
  • Added instructions and schema to use or migrate to SQLite

    Added instructions and schema to use or migrate to SQLite

    ~~- makes SQLite 3 the default database engine~~ (contentious, so i separated from this PR)

    • adds SQLite schema in addition to MySQL one
    • readme now includes instructions on how to setup SQLite DB
    • readme now includes migration instructions

    See discussion at #11

    needs work 
    opened by liilac 6
  • Filename sanitization

    Filename sanitization

    I just saw a original filename with single quotes around it so the extension ended with a single quote

    originalfilename: 'filename.ext' filename: asdfe.ext'

    not sure this is desired, just bringing it to your attention.

    bug 
    opened by odilitime 5
  • Significant Makefile improvements

    Significant Makefile improvements

    (squashed commits on previous one so can't reopen)

    • Previously min-js would continually append to the file with @echo "// @source https://github.com/pomf/pomf/tree/master/static/js" >> ./dist/pomf.min.js (note the >>).
      Fixed so that it overwrites the file whenever it is run now.
    • generally made a number of changes so Makefile better follows conventions
    • added uninstall support as per Makefile conventions
    • added DESTDIR support -- allows specifying installation destination directory in standard Makefile way
    • added dist support -- allows archive containing the "compiled" site to be produced via make dist
    • replaced program names with the appropriate variables as per makefile conventions
    • mkdirs was renamed to installdirs as per makefile conventions
    • copy was renamed to install for the same reasons
    • added clean and uninstall targets
    opened by liilac 5
  • Prevent others from uploading to server

    Prevent others from uploading to server

    It's probably been documented somewhere and asked before, but what can I do to prevent random people from uploading to my private pomf? I'd prefer an api or user/password solution if possible that is compatible with ShareX.

    Thank you.

    opened by Dooleylabs 4
  • remove sqlite

    remove sqlite

    It was a shitty implementation and would even require a re-write of moe to make it work.

    Suggest we remove it altogether as I don't know any clone who would bother with it.

    opened by jithatsonei 4
  • Change default DB from MySQL placeholder to valid SQLite

    Change default DB from MySQL placeholder to valid SQLite

    See: #11 for discussion; #17 adds schema and instructions without making SQLite the default

    • has zero impact on already set up sites
    • at the moment all MySQL settings in settings.inc.php are placeholders
    • MySQL requires substantially more setup than SQLite
    • SQLite simplifies pomf set up
    • instructions on how to set up SQLite (very simple) are covered in #17
    • no instructions on setting up MySQL provided
    opened by liilac 4
  • Use SQLite as default DB; added migration instructions

    Use SQLite as default DB; added migration instructions

    • makes SQLite default database in settings.inc.php
    • adds SQLite schema in addition to mysql one
    • readme now includes instructions on how to setup sqlite DB
    • readme includes migration instructions
    opened by liilac 4
  • paste

    paste

    this feature of mine is made out of cobbled together spaghetti and tears, clipboard grabbing needs a rewrite to latest mozilla suggestions, and the HTML elements desperately needs to be redone to something that doesn't looks horrible and makes me cry everytime i upload to a clone.

    The actual pseudo code itself is sound, but our implementation is certainly not the best

    opened by jithatsonei 1
  • Cant read settings file

    Cant read settings file

    Hello all,

    Installed both Pomf and Moe, both work fine. However, when trying to upload a file (.jpg, .png, etc), I receive the following error:

    Cant read settings file.

    I have already checked permissions and have done as said in the documentation. Not sure where to go from here.

    chown www-data:www-data /var/www/db
    chown www-data:www-data /var/www/db/pomf.sq3
    chown www-data:www-data /var/www/files
    chmod 775 /var/www
    chmod -R 775 /var/www/
    
    opened by syberslxt 0
  • Upgrade to GitHub-native Dependabot

    Upgrade to GitHub-native Dependabot

    Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then.

    Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the new syntax. When merged, we'll swap out dependabot-preview (me) for a new dependabot app, and you'll be all set!

    With this change, you'll now use the Dependabot page in GitHub, rather than the Dependabot dashboard, to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.

    If you've got any questions or feedback for us, please let us know by creating an issue in the dependabot/dependabot-core repository.

    Learn more about migrating to GitHub-native Dependabot

    Please note that regular @dependabot commands do not work on this pull request.

    dependencies 
    opened by dependabot-preview[bot] 2
Releases(v2.8.2)
  • v2.8.2(Jan 29, 2022)

  • v2.8.1(Jan 29, 2022)

    File extension fix also no more double dots since it's easy to abuse and not a lot of files actually use it... so lets put that on hold for now, also improved IP detection.

    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Jan 23, 2022)

  • v2.7.0(Jan 22, 2022)

    A lot of changes has been made in this version, pretty much all of the code has been reworked. Be sure you're on PHP 8.0 or higher before upgrading.

    • More error reporting.
    • Less bloat and easier to read.
    • Settings are handled by dist.json instead.
    • Double dot array mess removed.
    • Now follows PHP PSR-12.

    TODO

    • Further documentation
    • More comments on code
    • probably more stuff
    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Jul 4, 2021)

  • v2.5.0(Jul 3, 2021)

  • v2.4.2(Jun 28, 2021)

  • v2.4.1(Jun 27, 2021)

  • v2.4.0(Jun 24, 2021)

    • Minor styling changes, blue boxes around FAQ and Tools
    • Minor configuration changes
    • File name generation now defaults to 8 chars and utilizes both lowercase and uppercase

    To enable paste uploading on an existing install just replace pomf.min.js with: https://gist.githubusercontent.com/nokonoko/c0e301f759ede0b6c0251490480d5be0/raw/f3197dc15801c13a061c4f483a21281f44c5b778/pomf.min.js

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Jun 23, 2021)

  • v2.2.0(Jun 21, 2021)

    • There were bugs causing the file not to be uploaded or inserted into the BD which has been fixed.
    • Added the option to log IP.
    • Error codes improvements.
    • File type filtering improvements.
    • Several other minor changes.
    Source code(tar.gz)
    Source code(zip)
Owner
Pomf
honk honk
Pomf
Simple file uploading, Pomf like

Pomf-0x80 Simple file uploading, Pomf like. Features One click uploading, no registration required IPFS Upload + Pin A minimal, modern web interface D

Iqbal Rifai 4 Apr 28, 2022
A lightweight file manager with full ShareX, Screencloud support and more

XBackBone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading

Sergio Brighenti 751 Jan 8, 2023
PictShare is an open source image, mp4, pastebin hosting service with a simple resizing and upload API that you can host yourself.

PictShare is an open source image, mp4, pastebin hosting service with a simple resizing and upload API that you can host yourself.

Haschek Solutions 709 Jan 3, 2023
FileNamingResolver - A lightweight library which helps to resolve a file/directory naming of uploaded files using various naming strategies

FileNamingResolver - A lightweight library which helps to resolve a file/directory naming of uploaded files using various naming strategies

Victor Bocharsky 111 May 19, 2022
FIle Uploader is a php package to aid fast , easy and safe file upload

FILE UPLOADER FIle Uploader is a php package to aid fast , easy and safe file upload installation composer require codad5/file-helper Features Fast an

Aniezeofor Chibueze Michael 2 Sep 3, 2022
Media gallery with CKEditor, TinyMCE and Summernote support. Built on Laravel file system.

Documents ・ Installation ・ Integration ・ Config ・ Customization ・ Events ・ Upgrade ・ Demo ・ FAQ Features File upload and management Uploading validati

UniSharp 1.9k Jan 1, 2023
Upload File Library For PHP ( Simple & Easy User )

Upload File Library For Backend/ServerSide PHP ( Simple & Easy For Use ), Support Multiple Upload

Lamhot Simamora 1 Oct 12, 2021
Private file storage and share with user build with laravel and vue inspired by google drive

LaravelDrive is a file storage system that allows store private file and share with users build wiht laravel and vue inspired by google drive. Laravel

Shahadat Hossain 70 Dec 22, 2022
Detects file type by filename or content and generates correct mimetype.

FileTypeDetector Files type detector based on file name extension or file content (binary content). Usage Installation Supported formats Usage File Ty

Sergey 31 Oct 6, 2022
Basic anonymous and registered upload storage for temporary share file self hosted.

TMPShareX Basic anonymous and registered upload storage for temporary share file self hosted. Server Requirement PHP 7.4.8 [Support PHP 8] Nginx 1.19.

Sandy Hermansyah 1 Feb 3, 2022
kodbox is a file manager for web. It is a newly designed product based on kodexplorer.

kodbox is a file manager for web. It is a newly designed product based on kodexplorer. It is also a web code editor, which allows you to develop websites directly within the web browser.You can run kodbox either online or locally,on Linux, Windows or Mac based platforms

warlee 1.2k Jan 7, 2023
Watch changes in the file system using PHP

Watch changes in the file system using PHP This package allows you to react to all kinds of changes in the file system. Here's how you can run code wh

Spatie 170 Dec 25, 2022
File manager module for the Lumen PHP framework.

Lumen File Manager File manager module for the Lumen PHP framework. Please note that this module is still under active development. NOTE: Branch 5.1 i

Digia 40 Aug 20, 2022
A web based file manager,web IDE / browser based code editor

KodExplorer Update to kodbox: https://github.com/kalcaddle/kodbox Download | Demo It is recommended to use a new design upgrade product:kodbox 该项目处于维护

warlee 5.8k Jan 3, 2023
🛬🧾 A PHP8 TacView ACMI file format parser

A PHP8 TacView ACMI file format parser This package offers parsing support for TacView ACMI flight recordings version 2.1, it follows the standard des

Ignacio Muñoz Fernandez 1 Jan 18, 2022
Creating a file uploader with Laravel

File-Uploader File uploader is a simple group of restful APIs built in Laravel to upload file into a server and remove the file from that server. Tool

AmirH.Najafizadeh 4 Jul 31, 2022
Gotipath Storage is a file storage library for PHP. It provides one interface to interact with FTP/SFTP.

Gotipath Storage is a file storage library for PHP. It provides one interface to interact with FTP/SFTP. When you use this package, you're protected from vendor lock-in, That mean you can connect to any FTP/SFTP storage. Also it's comes with base URL option to connect Gotipath CDN.

Gotipath 2 Nov 3, 2021
PHPProject is a library written in pure PHP that provides a set of classes to write to different project management file formats

PHPProject PHPProject is a library written in pure PHP that provides a set of classes to write to different project management file formats, i.e. Micr

PHPOffice 192 Dec 17, 2022