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