]> jfr.im git - uguu.git/blob - README.md
I run this on nginx+php7-fpm on debian 9
[uguu.git] / README.md
1 # About
2 [Uguu.se](http://uguu.se) source code, stores files and deletes after X amount of time.
3
4 # Tested with:
5 * Nginx+PHP5-FPM (PHP 5.4) on Debian 7 Wheezy
6 * Apache (PHP 5.4) on Ubuntu 14.04 LTS
7 * Apache (PHP 5.6) on Debian 8 Jessie
8 * Nginx+PHP5-FPM (PHP 5.6) on Debian 8 Jessie
9 * Apache (PHP 5.6.33 (remi-php56)) on CentOS 6.9
10 * Nginx+PHP7-FPM (PHP 7.0) on Debian 9 Stretch
11
12 # Install:
13
14 * Deploy base code, for example with `git clone https://github.com/nokonoko/Uguu.git`
15 * Modify includes/config.php (copy config.template.php as a starting point) to set up the main options for Uguu.
16 * Some file extensions are blocked by default, this can be changed via includes/config.php's CONFIG_BLOCKED_EXTENSIONS value.
17 * Copy `rain/template/footer.template.html` as `rain/template/footer.html` and personalize the footer as you wish
18 * 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).
19 * Make the Uguu/public/files and Uguu/rain/cache directory modifiable by the web server user:
20 `chown -R www-data:www-data /path/to/Uguu/public/files` and `chown -R www-data:www-data /path/to/Uguu/rain/cache`
21 * Make sure the Uguu/public/files folder is not indexable, you may use a virtual host config similar to this one using Apache:
22
23 ```
24 <VirtualHost *:80>
25 ServerName path.to.uguu
26
27 DocumentRoot /var/www/Uguu/
28 <Directory /var/www/Uguu/>
29 AllowOverride All
30 Require all granted
31 </Directory>
32
33 Alias "/files" "/var/www/Uguu/public/files/"
34 <Directory /var/www/Uguu/public/files/>
35 <Files *>
36 SetHandler default-handler
37 </Files>
38 AllowOverride None
39 Options -Indexes
40 Require all granted
41 </Directory>
42
43 </VirtualHost>
44 ```
45
46 Or something like this using Nginx+PHP-FPM:
47
48 uguu.se
49 ```
50 server{
51 listen 104.243.35.197:80;
52 server_name uguu.se www.uguu.se;
53
54 root /home/neku/www/uguu/;
55 autoindex off;
56 index index.html index.php;
57
58 location ~* \.php$ {
59 fastcgi_pass unix:/var/run/php5-fpm.sock;
60 fastcgi_intercept_errors on;
61 fastcgi_index index.php;
62 fastcgi_split_path_info ^(.+\.php)(.*)$;
63 include fastcgi_params;
64 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
65 }
66
67 error_page 404 /404.html;
68 error_page 403 /404.html;
69 location /404.html {
70 root /home/neku/www;
71 }
72 }
73 ```
74
75 a.uguu.se (notice that scripts e.g PHP will NOT be executed from this subdomain)
76 ```
77 server{
78 listen 104.243.35.197:80;
79 server_name a.uguu.se www.a.uguu.se;
80
81 root /home/neku/www/files;
82 autoindex off;
83 index index.html;
84
85 error_page 404 /404.html;
86 error_page 403 /404.html;
87 location /404.html {
88 root /home/neku/www;
89 }
90 }
91 ```
92
93
94 # Using the API
95
96 * Leaving POST value 'name' empty will cause it to save using the original filename.
97 * Leaving POST value 'randomname' empty will cause it to use original filename or custom name if 'name' is set to file.ext.
98
99 * Putting anything into POST value 'randomname' will cause it to return a random filename + ext (xxxxxx.ext).
100 * Putting a custom name into POST value 'name' will cause it to return a custom filename (yourpick.ext).
101
102 E.g:
103 * curl -i -F name=test.jpg -F file=@localfile.jpg http://path.to.uguu/api.php?d=upload (HTML Response)
104 * curl -i -F name=test.jpg -F file=@localfile.jpg http://path.to.uguu/api.php?d=upload-tool (Plain text Response)