103 lines
3.6 KiB
Markdown
103 lines
3.6 KiB
Markdown
# About
|
|
[u.fuwafuwa.moe](https://u.fuwafuwa.moe) source code, stores files and deletes after X amount of time.
|
|
|
|
# Tested with:
|
|
* Nginx+PHP5-FPM (PHP 5.4) on Debian 7 Wheezy
|
|
* Apache (PHP 5.4) on Ubuntu 14.04 LTS
|
|
* Apache (PHP 5.6) on Debian 8 Jessie
|
|
* Nginx+PHP5-FPM (PHP 5.6) on Debian 8 Jessie
|
|
|
|
# Install:
|
|
|
|
* Deploy base code, for example with `git clone https://git.fuwafuwa.moe/fuwafuwa/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;
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
# 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:
|
|
* curl -i -F name=test.jpg -F file=@localfile.jpg http://path.to.uguu/api.php?d=upload (HTML Response)
|
|
* curl -i -F name=test.jpg -F file=@localfile.jpg http://path.to.uguu/api.php?d=upload-tool (Plain text Response)
|