Skip to content
Simple temporary file hosting
PHP HTML Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
css
font Raintpl, materialized css framework. Feb 23, 2015
img
includes Use === Mar 1, 2017
js
public/files Adding the public files folder May 14, 2016
rain
.gitignore
LICENSE
README.md
api.php
error.php
error_meow.php
index.php
tools.txt
upload-done.php

README.md

About

Uguu.se source code, stores files and deletes after X amount of time.

Tested with:

  • Apache (PHP 5.4) on Ubuntu 14.04 LTS
  • Apache (PHP 5.6) on Debian 8 Jessie
  • Apache (PHP 5.6.33 (remi-php56)) on CentOS 6.9
  • Nginx+PHP5-FPM (PHP 5.4) on Debian 7 Wheezy
  • Nginx+PHP5-FPM (PHP 5.6) on Debian 8 Jessie
  • Nginx+PHP7-FPM (PHP 7.0) on Debian 9 Stretch
  • Caddy + php7.0-fpm on Ubuntu 16.04.4 LTS

Install:

  • Deploy base code, for example with git clone https://github.com/nokonoko/Uguu.git
  • Modify includes/config.php (copy config.template.php as a starting point) to set up the main options for Uguu.
  • Some file extensions are blocked by default, this can be changed via includes/config.php's CONFIG_BLOCKED_EXTENSIONS value.
  • Copy rain/template/footer.template.html as rain/template/footer.html and personalize the footer as you wish
  • Execute check.sh regularly with cron to delete old files: crontab -e and add 0,15,30,45 * * * * cd /path/to/uguu/includes && bash check.sh (or adapt if you know how cron works).
  • Make the Uguu/public/files and Uguu/rain/cache directory modifiable by the web server user: chown -R www-data:www-data /path/to/Uguu/public/files and chown -R www-data:www-data /path/to/Uguu/rain/cache
  • Make sure the Uguu/public/files folder is not indexable, you may use a virtual host config similar to this one using Apache:
<VirtualHost *:80>
        ServerName path.to.uguu

        DocumentRoot /var/www/Uguu/
        <Directory /var/www/Uguu/>
                AllowOverride All
                Require all granted
        </Directory>

        Alias "/files" "/var/www/Uguu/public/files/"
        <Directory /var/www/Uguu/public/files/>
          <Files *>
            SetHandler default-handler
          </Files>
          AllowOverride None
          Options -Indexes
          Require all granted
        </Directory>

</VirtualHost>

Or something like this using Nginx+PHP-FPM:

uguu.se

server{
    listen              104.243.35.197:80;
    server_name         uguu.se www.uguu.se;

    root                        /home/neku/www/uguu/;
    autoindex           off;
    index                       index.html index.php;

    location ~* \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_intercept_errors on;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

        error_page 404 /404.html;
        error_page 403 /404.html;
        location /404.html {
        root /home/neku/www;
        }
}

a.uguu.se (notice that scripts e.g PHP will NOT be executed from this subdomain)

server{
    listen          104.243.35.197:80;
    server_name     a.uguu.se www.a.uguu.se;

    root            /home/neku/www/files;
    autoindex       off;
    index           index.html;

        error_page      404 /404.html;
        error_page      403 /404.html;
        location /404.html {
        root /home/neku/www;
        }
}

Or something like this for usage with caddy:

uguu.se {
    fastcgi / /var/run/php/php7.0-fpm.sock php
    root /home/neku/www
}

a.uguu.se {
    root /home/neku/www/files
}

Using the API

  • Leaving POST value 'name' empty will cause it to save using the original filename.

  • Leaving POST value 'randomname' empty will cause it to use original filename or custom name if 'name' is set to file.ext.

  • Putting anything into POST value 'randomname' will cause it to return a random filename + ext (xxxxxx.ext).

  • Putting a custom name into POST value 'name' will cause it to return a custom filename (yourpick.ext).

E.g:

You can’t perform that action at this time.